ted added a comment.
I created the original bug because a change made LLDB stop working on address
breakpoints if they were created before the program is run. Setting a
breakpoint on an address is a typical case with embedded applications,
especially if you want to debug startup code.
I took this patch and applied it to the latest downstream Hexagon repo. It
behaved as expected - I set a breakpoint at the address of main, ran, and it
stopped at the breakpoint. Before this patch, the breakpoint wouldn't be
resolved.
Thanks, Vadim!
(lldb) p main
(int (*)(int, unsigned char **)) $0 = 0x00005128
(lldb) b 0x5128
Breakpoint 1: address = 0x00005128
(lldb) br l
Current breakpoints:
1: address = 0x0000000000005128, locations = 1
1.1: address = 0x00005128, unresolved, hit count = 0
(lldb) r
Process 1 launched: '/usr2/tedwood/lldb_test/factorial' (hexagon)
Process 1 stopped
- thread #1, name = 'T1', stop reason = breakpoint 1.1 frame #0: 0x00005128
factorial`main(argc=-1161904401, argv=0x00005bac) at factorial.c:13 10 } 11
12 int main(int argc, char **argv)
-> 13 {
14 unsigned base;
15
16 /*
(lldb) re r pc
pc = 0x00005128 factorial`main at factorial.c:13
(lldb) br l
Current breakpoints:
1: address = 0x00005128, locations = 1, resolved = 1, hit count = 1
1.1: address = 0x00005128, resolved, hardware, hit count = 1
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109738/new/
https://reviews.llvm.org/D109738
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits