DTrace:跟踪OS X上的用户堆栈大小? (curthread-> t_procp-> p_stksize)

时间:2013-02-14 16:18:39

标签: macos stack-trace callstack dtrace

我遇到过这个简单的DTrace脚本,用于跟踪用户堆栈大小,但它不适用于OS X Mountain Lion:

dtrace -n 'sched:::on-cpu { @[execname] = max(curthread->t_procp->p_stksize);}'

(来自:http://www.solarisinternals.com/wiki/index.php/DTrace_Topics_One_Liners

OS X上返回的错误是:

dtrace: invalid probe specifier sched:::on-cpu { @[execname] =
  max(curthread->t_procp->p_stksize);}: in action list:
  t_procp is not a member of struct thread

实际上,我很难弄清楚OS X上“curthread”的有效成员是什么。是否有相同的方法可以深入到该线程的当前用户堆栈大小?或者“在线操作”只是OS X上的一个不透明指针,只能用于线程识别?请注意,我很高兴通过“pid”提供程序进行此跟踪,如果这有助于任何。

谢谢!

0 个答案:

没有答案