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 lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits