3

我遇到了这个用于跟踪用户堆栈大小的简单 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”的有效成员是什么。是否有等效的方法可以深入了解线程的当前用户堆栈大小?或者“curthread”只是 OS X 上的一个不透明指针,仅可用于线程识别?请注意,如果有帮助的话,我很乐意通过“pid”提供程序进行此跟踪。

谢谢!

4

0 回答 0