I maintain a Python library that's written in C++ (using Pybind11). For the past couple of years, I've been able to debug it just fine with lldb
, just by compiling the extension in debug mode (i.e.: disabling optimization and including symbols, with -g
).
However, as of lldb-1300.0.42.3
on macOS Ventura 13.1 (22C65), lldb
is completely unable to find the symbols and reports every stack frame as being from dyld:
(lldb) bt
* thread #2, stop reason = signal SIGSTOP
frame #0: 0x0000000187110a00
frame #1: 0x00000001003700fc dyld
frame #2: 0x00000001003e2614 dyld
frame #3: 0x00000001003dfbac dyld
frame #4: 0x00000001003e3188 dyld
frame #5: 0x000000010033df20 dyld
frame #6: 0x000000010033d754 dyld
frame #7: 0x00000001003dfe28 dyld
frame #8: 0x00000001003e3188 dyld
frame #9: 0x000000010033df20 dyld
* frame #10: 0x000000010033d754 dyld
frame #11: 0x00000001003dfe28 dyld
frame #12: 0x00000001003e3188 dyld
frame #13: 0x000000010033df20 dyld
frame #14: 0x00000001003e2614 dyld
...
I've tried:
- Ensuring that debug symbols are compiled into the executable
- Adding a breakpoint on
dlopen
(which does not get hit) - Using
image list
to show the loaded binary images (which does not include my Python extension)