Linux では、echo t > /proc/sysrq-triggerシステム内のすべてのスレッドのカーネル コール スタックをダンプするために使用できます。
同じ目的で Mac OS X に方法はありますか? または1つのプロセスのカーネルスタックをダンプする方法はありますか?
簡単な答え: procexp 0 スレッド (root として) でうまくいきます。ここで、procexp はhttp://newosxbook.com/tools/procexp.htmlの「Process Explorer」です。
少し長い回答: - Dtrace は過剰であり、SIP の無効化が必要です - 基礎となる syscall (#365) が削除されたため、stackshot は非推奨です - 代わりに、stack_snapshot_with_config(#491) をプログラムで使用することもできます (これが上記のツールを駆動するものです) )
答えはおそらく dtrace です。Instruments.app (または iprofiler) がプローブ ベースのプロファイリングを実行できることはわかっているため、定期的なスタック トレースが必要です。(ユーザーまたはカーネル。選択) 私が知る限り、これはすべて dtrace に基づいています。