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

グラハムが言ったことに加えて、元のステートメントは NSObject のインスタンスのみを検出し、その子孫は検出しません。あなたは試すことができます

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

すべての NSObject 派生インスタンスによってすべての -init バリアントをキャッチします。

于 2009-07-28T22:32:26.187 に答える
0

問題のプロセスは dtrace を許可していますか? Appleは、os x で常に dtrace を許可しているわけではありません。

于 2009-07-28T21:22:36.373 に答える