2

Solaris 10 で実行しているプロセスがあり、SIGSEGV が原因で終了します。さまざまな興味深い理由により、通常の方法でバックトレースを取得することはできません (gdb、バックトレース呼び出し、コアファイルはすべてアウトです)。しかし、dtrace は使えるかもしれないと思います。

もしそうなら、プロセスが強制終了されたときにプロセスのスレッド スタックを出力する dtrace スクリプトを書きたいと思います。私は dtrace にあまり詳しくありませんが、知っている人にとってはかなり簡単に思えます。特定のプロセスを監視するような方法でこれを実行できるようにしたいと思います。何かご意見は?

4

2 に答える 2

3

他の誰かがこれに出くわした場合に備えて、私は次のスクリプトを組み合わせて OS X で実験を進めています。

#!/usr/sbin/dtrace -s

proc:::fault
/pid == $1/
{
        ustack();
}

完全なソリューションがあれば、これを更新します。

于 2013-06-14T18:51:53.190 に答える
1

2 人の Solaris エンジニアが、Dtrace を使用してクラッシュ データをキャプチャするためのスクリプトを作成し、その使用に関する記事を公開しました。この記事は、現在、Oracle Technology Network: Enable User-Controlled Collection of Application Crash Data With DTraceで見つけることができます。

著者の 1 人は、彼のブログに多くの更新を公開しました。これはまだhttps://blogs.oracle.com/gregns/で読むことができますが、2007 年に亡くなって以来、それ以上の更新はありません。

于 2013-06-16T16:40:45.483 に答える