我需要在OSX上对32位可执行文件运行DTrace。我有两台机器,都运行着OSX 10.8.2。其中一台机器上,/usr/lib/dtrace/libdtrace_dyld.dylib
是一个fat二进制文件,而另一台则不是:
/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
libtrace_dyld.dylib
;我升级的另一台机器具有32位和64位版本(12C60)。听起来像是一个漏洞。 - Nicholas Riley