3

ここのアドバイスを使用して、Xcode プロジェクトで dtrace ターゲットを構築しようとしています。

http://osx86.boeaja.info/2009/10/building-xnu-kernel-on-snow-leopard/

しかし、次のようになります: libproc.m:24:49: エラー: CoreSymbolication/CoreSymbolication.h: そのようなファイルまたはディレクトリはありません

CoreSymbolication がプライベート フレームワークであることは理解していますが、dtrace をビルドするには、Apple がこのヘッダーをどこかで利用できるようにする必要があります。dtrace をビルドするために必要なファイルを教えてもらえますか?

4

1 に答える 1

1

お気づきかもしれませんが、Apple は他のオープンソース プロジェクトから取得したカーネルの一部のみをリリースする必要があり、カーネルの上に構築するユーザーランド ライブラリは含まれません。CoreSymbolication/CoreSymbolication.hただし、Obj-C のユーザー空間ヘッダーによく似ているため、おそらくそれなしでカーネル DTrace ユーティリティを構築できます。(私は間違っている可能性が非常に高いですが。)

dtrace(1m)ユーザーランドコマンドでシンボル識別に使用されていると思います。これを理解するのに役立つツールがあれば... :-D

# dtrace -n 'pid$target:CoreSymbolication::entry {}' -c 'dtrace -ln syscall::write:entry'
dtrace: description 'pid$target:CoreSymbolication::entry ' matched 246 probes
   ID   PROVIDER            MODULE                          FUNCTION NAME
  147    syscall                                               write entry
dtrace: pid 88089 has exited
CPU     ID                    FUNCTION:NAME
  2   6538 CSSymbolOwnerGetRegionWithName:entry 
  2   5014 CSSymbolOwnerForeachRegionWithName:entry 
  2   5078      CSRegionForeachSymbol:entry 
  2   6495 CSSymbolicatorGetSymbolOwnerWithUUIDAtTime:entry 
  2   6493 CSSymbolicatorForeachSymbolOwnerWithUUIDAtTime:entry 
  2   6494 CSSymbolicatorForeachSymbolOwnerWithCFUUIDBytesAtTime:entry 
  2   5048  CSSymbolOwnerGetDataFlags:entry 
  2   6538 CSSymbolOwnerGetRegionWithName:entry 
  2   5014 CSSymbolOwnerForeachRegionWithName:entry 
  2   5078      CSRegionForeachSymbol:entry 
  2   5092         CSSymbolIsExternal:entry 
  2   5092         CSSymbolIsExternal:entry
  ...

とにかく、ライブラリはdtraceコマンドによって使用されているようです。

于 2013-05-29T23:40:14.847 に答える