NSLock、NSThread、NSObject などのシステム クラスやメソッドを使用せずに、DTraceを使用してユーザー定義のクラスとメソッドを出力するにはどうすればよいですか?
次の D コードを使用して、システムおよびユーザー定義を含むすべての Objective-C メソッドをトレースできます。
objc$target:::entry
{
printf("%s %s\n", probemod, probefunc);
}
NSLock、NSThread、NSObject などのシステム クラスやメソッドを使用せずに、DTraceを使用してユーザー定義のクラスとメソッドを出力するにはどうすればよいですか?
次の D コードを使用して、システムおよびユーザー定義を含むすべての Objective-C メソッドをトレースできます。
objc$target:::entry
{
printf("%s %s\n", probemod, probefunc);
}
DTraceは、カーネルとユーザースペースについてのみ知っています。どのライブラリがシステムの一部であり、何がそうでないかについては何も知りません。
Cocoaの規則に従い、すべてのクラスに適切にプレフィックスを付ける場合は、プローブの名前にプレフィックスを指定できます。たとえば、プレフィックスが次の場合VIC
:
objc$target:VIC*::entry
{
printf("%s %s\n", probemod, probefunc);
}
これらのプローブは、渡されたクラスの前にVICが付いている場合にのみ起動されます。