% sudo dtrace -p 2446 'objc$target:NSObject:-init:entry { trace(); }'
dtrace: no probes specified
The manpage表明这是用于在Objective-C方法上指定探测的正确格式。我试过-Z,但(不出所料)只是没有打印任何东西。
[已添加]它甚至不是Objective-C探针特有的。我用AppKit的C函数尝试了它:
sudo dtrace -p 2446 'pid$target::NSPopAutoreleasePool:entry { trace(); }'
dtrace: no probes specified
那有什么不对?为什么DTrace认为我没有指定任何探测器?
答案 0 :(得分:3)
我认为你的意思是:
sudo dtrace -p 2446 -n 'objc$target:NSObject:-init:entry { trace(); }'
答案 1 :(得分:0)
有问题的流程是否允许dtrace? Apple doesn't always allow dtrace on os x。
答案 2 :(得分:0)
除了格雷厄姆所说的,你的原始陈述只会找到NSObject的实例,而不是它的后代。你可以试试
sudo dtrace -p 2446 -n 'objc$target::-init*:entry {}'
通过所有NSObject派生的实例捕获所有-init变体。