终于在公司搞到了一台旧的iMac 5.1, Intel Core 2 Duo 2.0 GHz/ 2G DDR2 667 MHz。
装上了Snow Leopard和官方发布的Qt 4.7.0 Beta 2和Qt Creator 2.1快照版,想debug进Qt库,竟然不成,咨询了公司内外的Mac开发朋友,原来我遇到了Apple的bug。
DYLD_IMAGE_SUFFIX=_debug makes application crash on Mac OS X – Snow Leopard
DYLD_IMAGE_SUFFIX causing havoc on Mac OS X Snow Leopard
而且变态的Apple自己的bug tracker还是封闭的,只有号码,看不到具体情况。
最后的解决办法是:
cd /usr/lib
sudo mv libSystem.B_debug.dylib libSystem.B_debug.dylib.bak
sudo mv libmx.A_debug.dylib libmx.A_debug.dylib.bak
之前还以为/Developers/SDKs/MacOSX10.6.sdk/usr/lib的有效呢。
BTW,学习了OS X下的ldd就是otool。
其它参考文档:
Technical Note TN2124: Mac OS X Debugging Magic
2010年7月30日注:升级到XCode 3.2.3后,依然崩溃。
实际上ldd只是个shell脚本,而在交叉编译的时候还不好找。
个人觉得,直接使用readelf就行了。如果找动态链接库话的,使用readelf -d就好了。