badass debugger + badass toy = geek pr0n
Ero Carrera (ero) <erocarreragmailcom> Tuesday, February 19 2008 18:54.00 CST


Today I finally got working a hacked-together minimal version of the iPhone debugger client for BinNavi. Its heavily based on Patrick Waltons (with HDs updates) weasel debugger. Once tied to BinNavi debug client framework the whole client-server interaction is trivial.

It feels just right, the best looking debugger together with the slickest device.. recipe for fun.. ;-)



The test application is telnet on the iPhone. On the iPhones screen is the debug output from BinNavis debug client. telnet is launched from an ssh session in OSX, where BinNavi is running.



For anybody trying to link Machs debugging interface with a C++ iPhone application, remember the extern "C" when defining boolean_t exc_server(mach_msg_header_t *in, mach_msg_header_t *out); (which is not defined in the header files, as pointed in weasels source code). Otherwise youll get a nasty "Undefined symbols" message when linking.

extern "C" is also needed for catch_exception_raise(...) so exc_server can call it to handle exceptions. Documented here.
(Ive used the standard iPhone toolchain on Debian, this is running on the firmware 1.1.3)