4

OSX 上の 32 ビット実行可能ファイルで DTrace を実行する必要があります。2 台のマシンがあり、どちらも OSX 10.8.2 を実行しています。そのうちの 1 つは/usr/lib/dtrace/libdtrace_dyld.dylibファット バイナリであり、もう 1 つはそうではありません。

/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

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

この2つはどこから来たのですか?太いものを「公式に」取得するにはどうすればよいですか。つまり、他のマシンからコピーするだけではありませんか?

これは、64 ビットのみの dylib を使用して 32 ビットの実行可能ファイルで dtrace を実行しようとすると、次のようになります。

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

1 に答える 1

2

Mac OS X ML の DTrace ライブラリはファット バイナリ (i386、x86_64) です。誰かが削除したため、2 台目のマシンには 32 ビットがありません。おそらく、そのシステム「オプティマイザ」の 1 つがシステム上で実行されました。

私のマシンのlibのSHA( shasum /usr/lib/dtrace/libdtrace_dyld.dylib)は0722f971d9999245cda234ba5fd3119820fa348a. 他のいくつかのマシンでテストしましたが、一致しました。また、Mac OS X ML を新規インストールしたマシンでも一致しました。つまり、コピーするだけでOKです。

それを復元する他の唯一の方法は、バックアップから復元するか、システムを再インストールすることです。

于 2013-02-26T14:46:36.453 に答える