With a fat binary (32/64bit), gdb picks the 64 bit version. If you're trying to debug a 32-bit unit test on the command-line though, the 64-bitness of /Developer/Tools/otest gets in the way:% gdb /Developer/Tools/otest 2008-10-31 19:29:50.834 otest[711:813] Error loading /blah/blah/blah/build/Debug/Tests.octest/Contents/MacOS/Tests: dlopen(/blah/blah/blah/build/Debug/Tests.octest/Contents/MacOS/Tests, 265): no suitable image found. Did find: /blah/blah/blah/build/Debug/Tests.octest/Contents/MacOS/Tests: mach-o, but wrong architecture 2008-10-31 19:29:50.887 otest[711:813] The test bundle at build/Debug/Tests.octest could not be loaded because it is built for a different architecture than the currently-running test rig (which is running as unknown). 2008-10-31 19:29:50.904 otest[714:203] *** NSTask: Task create for path '/blah/blah/blah/build/Debug/Tests.octest/Contents/MacOS/Tests' failed: 8, "Exec format error". Terminating temporary process.You can supply a -arch flag to pick what you want:% gdb -arch i386 /Developer/Tools/otestAnd then debug your 32-bit unit test.