gdb on Mac OS bpt implementation question

Jason Molenda
Thu Nov 10 22:19:00 GMT 2011

On Nov 8, 2011, at 3:41 PM, Mick Jordan wrote:

> I'd be grateful if someone could point me to where in the gdb source code that Mac OS specific breakpoint setting is done. The problem I am trying to resolve is how breakpoints are set in shared libraries, given that they are loaded read-only on Mac OS X (assuming the "write a bpt instruction" approach).

For what it's worth, two other implementations that may be worth consulting on issues like this are the Apple fork of gdb, downloadable here
although it's based on the gdb sources circa 2006-2007.

lldb, the new debugger that we've been writing recently is licensed under the LLVM copyright (berkeley-style) and has a public svn repository, is also a good reference for how debuggers work on the Mac OS X platform.  v.

although note that lldb's primary method of operation on Mac OS X is to debug the inferior via a gdbserver-like program via gdb remote protocol (our implementation is "debugserver" and the sources are in lldb/tools/debugserver in the source checkout).  Originally we had lldb controlling the inferior process directly but on Mac OS X we've moved away from that and have all process done by debugserver - that's where you'd want to look to see how the low level memory reading/writing/etc is done.


More information about the Gdb mailing list