0

NSLock、NSThread、NSObject などのシステム クラスやメソッドを使用せずに、DTraceを使用してユーザー定義のクラスとメソッドを出力するにはどうすればよいですか?

次の D コードを使用して、システムおよびユーザー定義を含むすべての Objective-C メソッドをトレースできます。

objc$target:::entry
{
    printf("%s %s\n", probemod, probefunc);
}
4

1 に答える 1

1

DTraceは、カーネルとユーザースペースについてのみ知っています。どのライブラリがシステムの一部であり、何がそうでないかについては何も知りません。

Cocoaの規則に従い、すべてのクラスに適切にプレフィックスを付ける場合は、プローブの名前にプレフィックスを指定できます。たとえば、プレフィックスが次の場合VIC

objc$target:VIC*::entry
{
   printf("%s %s\n", probemod, probefunc);
}

これらのプローブは、渡されたクラスの前にVICが付いている場合にのみ起動されます。

于 2011-08-22T10:48:59.937 に答える