Hello
So we all know how Apple is sandboxing like hell.
Sure, but allowing *any* old program to be debugged / decompiled in realtime is not the best for security implications, at least Apple thinks so.
Your subject is a little misleading as the "Xcode debugger" is essential lldb. Xcode itself simply wraps lldb when debugging and provides a UI top interact with it. In fact, on a debug build crash in Xcode, you can enter lldb commands directly into the console, ie. "bt" will provide a backtrace directly.
How do people attach a debugger to pd to do development?
"lldb" like "gdb"
For quick tests of a known crasher, I usually use:
make
cd bin
lldb pd
This will use the system Tcl/Tk which has had issues for years now, but is enough for quick testing.
For best testing, build the .app and invoke the pd binary inside it. For example:
make
make app
lldb Pd-0.53-2.app/Contents/Resources/bin/pd
Once lldb launches, you have to start the process:
process launch
When a crash happens, you can get the backtrace with "bt", change frames with "f #", and print variables via "v". If you have used gdb before, this is a helpful crib sheet:
Note: If you are using a newer macOS system and want to *also* use a newer version of Tcl/Tk, build Wish.app first then use it to make the Pd .app bundle:
./macos/tcltk-wish.sh 8.6.12
produces a Wish-8.6.12.app. Next use it to build Pd .app with:
./mac/osx-app.sh -w Wish-8.6.12.app 0.53-2
Now you can change the C sources and rebuild with:
make
./mac/osx-app.sh -w Wish-8.6.12.app 0.53-2
Do I have to recompile pd myself as the long winded detour?
If you want debugging symbols, yes. Fortunately it is relative easy to compile Pd so I don't consider it "long-winded." In fact, we have spent quite a bit of time to make this both possible *and* relatively easy. (See above.)