2011-08-21 68 views

回答

1

的DTrace只知道大约内核和用户空间。它对什么库是系统的一部分,什么都不知道一无所知。

如果你遵循Cocoa约定并正确地为你所有的类加了前缀,那么你可以在probe名字中指定前缀。例如。如果你的前缀是VIC

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

仅当传递类前缀VIC这些探头将被解雇。

+0

我想只监视用户定义(我的代码)..我知道,使用“VIC”这样的前缀,可以得到与VIC的类,是另一种方式吗? – victor

+0

您可以创建[USDT提供程序](http://blogs.oracle.com/dap/entry/writing_a_dtrace_usdt_provider),并在需要跟踪的任何地方调用它。 – Kentzo