簡體   English   中英

你如何在Mac OS X上構建DTrace?

[英]how do you build DTrace on Mac OS X?

我正在嘗試使用以下建議在Xcode項目中構建dtrace目標:

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

但我得到:libproc.m:24:49:錯誤:CoreSymbolication / CoreSymbolication.h:沒有這樣的文件或目錄

我意識到CoreSymbolication是一個私有框架,但Apple必須在某處提供此標頭才能構建dtrace,對吧? 有人能指出我建立dtrace所需的文件嗎?

正如您可能已經想到的那樣,Apple只需要發布部分內核,這些部分內容來自其他開源項目,並且不包括他們在內核之上構建的用戶態庫。 CoreSymbolication/CoreSymbolication.h聽起來很像Obj-C的用戶空間標題,所以你可以在沒有它的情況下構建內核DTrace實用程序。 (雖然我很可能是錯的。)

我猜它會在userland 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命令正在使用該庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM