[Lldb-commits] [lldb] [lldb] Change lldb's breakpoint handling behavior (PR #96260)

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Tue Aug 6 15:17:16 PDT 2024


jasonmolenda wrote:

On an armv7k apple watch series 3, with debugserver, it looks like 

```
(lldb) si
 <  16> send packet: $vCont;s:10da#18
 < 297:296> read packet: $T05thread:10da;threads:10da;thread-pcs:1d004;00:d4fcdf27;01:00000000;02:00000000;03:00000000;04:00000000;05:00000000;06:00000000;07:00000000;08:00000000;09:00000000;0a:00000000;0b:00000000;0c:00000000;0d:d4fcdf27;0e:00000000;0f:04d00100;10:10000000;metype:6;mecount:2;medata:102;medata:1d004;#00

* thread #1, stop reason = instruction step into
    frame #0: 0x0001d004 dyld`_dyld_start + 4

```

The mach exception data of metype 6, medata [0x102, 0x1d004] means it's either a watchpoint (if the address reported is a watched location), a breakpoint, or an instruction step (lol). The current github main StopInfoMachException looks for a breakpoint at that address, and if it finds one, reports it as a breakpoint hit.  Else it reports this as an instruction step.  In this case, there was no breakpoint or watchpoint on 0x1d004 (and therefore no ambiguity), StopInfoMachException did `StopInfo::CreateStopReasonToTrace()`.

https://github.com/llvm/llvm-project/pull/96260


More information about the lldb-commits mailing list