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