正如您可能已经知道的那样,Apple 只需发布从其他开源项目中获取的部分内核,并且不包括他们在内核之上构建的用户空间库。CoreSymbolication/CoreSymbolication.h
听起来很像 Obj-C 的用户空间标头,因此您可能可以在没有它的情况下构建内核 DTrace 实用程序。(虽然我很可能是错的。)
我猜它被用于 userlanddtrace(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
无论如何,该命令似乎正在使用该库。