ユーザースタックサイズをトレースするためのこの単純な 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」プロバイダーを介してこのトレースを実行できれば幸いです。
ありがとう!