2
% sudo dtrace -p 2446 'objc$target:NSObject:-init:entry { trace(); }'
dtrace: no probes specified

手册页建议这是在 Objective-C 方法上指定探测的正确格式。我试过-Z,但(不出所料)那只是没有打印任何东西。

[添加] 它甚至不特定于 Objective-C 探针。我使用 AppKit 中的 C 函数进行了尝试:

sudo dtrace -p 2446 'pid$target::NSPopAutoreleasePool:entry { trace(); }'
dtrace: no probes specified

那么有什么问题呢?为什么 DTrace 认为我没有指定任何探针?

4

3 回答 3

3

我想你的意思是:

sudo dtrace -p 2446 -n 'objc$target:NSObject:-init:entry { trace(); }'
于 2009-07-28T21:43:46.287 回答
0

有问题的过程是否允许 dtrace?Apple并不总是允许在 os x 上使用 dtrace。

于 2009-07-28T21:22:36.373 回答
0

除了格雷厄姆所说的之外,您的原始语句只会找到 NSObject 的实例,而不是它的后代。你可以试试

sudo dtrace -p 2446 -n 'objc$target::-init*:entry {}'

通过所有 NSObject 派生实例捕获所有 -init 变体。

于 2009-07-28T22:32:26.187 回答