正如你可能已经知道的那样,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-29 23:40:14
Dan
DTrace被构建到Snow Leopard的标准运输内核中。你到底想做什么? – Yuji 2010-02-02 19:21:57
我想从头开始构建它。我认为这是与开源(CDDL)软件包交易的一部分,但也许苹果公司并不需要提供所有的东西来实现这一点。 – JanePhanie 2010-02-18 00:06:25