OSX上的32位DTrace

时间:2013-02-21 17:35:28

标签: macos dtrace

我需要在OSX上的32位可执行文件上运行DTrace。我有两台机器,都运行OSX 10.8.2。在其中一个上,/usr/lib/dtrace/libdtrace_dyld.dylib是一个胖二进制文件,另一个则不是:

/usr/lib/dtrace/libdtrace_dyld.dylib: Mach-O universal binary with 2 architectures
/usr/lib/dtrace/libdtrace_dyld.dylib (for architecture i386):   Mach-O dynamically linked shared library i386
/usr/lib/dtrace/libdtrace_dyld.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64

VS

/usr/lib/dtrace/libdtrace_dyld.dylib: Mach-O 64-bit dynamically linked shared library x86_64

这两个来自哪里?我如何“正式”获得肥胖,即没有从另一台机器上复制它?

当我尝试使用64位仅dylib在32位可执行文件上运行dtrace时会发生这种情况,顺便说一下:

dyld: could not load inserted library: /usr/lib/dtrace/libdtrace_dyld.dylib

1 个答案:

答案 0 :(得分:2)

Mac OS X ML上的DTrace库是胖二进制文件(i386,x86_64)。你的第二台机器缺少32位,因为有人将其删除了。系统中可能有一个系统“优化器”。

我机器上的lib的SHA(shasum /usr/lib/dtrace/libdtrace_dyld.dylib)是0722f971d9999245cda234ba5fd3119820fa348a。我已经在其他一些机器上进行了测试,并且匹配了。它还配备了全新安装Mac OS X ML的机器。这意味着可以复制它。

恢复它的唯一方法是从备份恢复它或重新安装系统。