2009-06-18 3 views
4

プロセスのシステムコールを監視する方法は?最も単純なケースのstraceのはUNIXシステムコールモニタ

+0

私は誤って "owned on uservoice.com"を選択しました - serverfault.comを選択することを意味します –

+4

私のプログラムで問題を診断している間、システムコールを常に監視しています。私はこの問題をServer Faultに格下げする理由はない。これはデバッグ技術に関する質問です。 –

答えて

10

チェックstrace

それが終了するまで指定されたコマンドを実行します。これは、プロセスによって呼び出されるシステムコールと、プロセスによって受信されるシグナルをインターセプトして記録します。各システムコールの名前、引数、および戻り値は、標準エラーまたは-oオプションで指定されたファイルに出力されます。

トレースの各行には、システムコール名と、それに続くカッコ内の引数とその戻り値が含まれます。

+3

どうやら 'strace'は比較的Linuxに偏っていると思いますが、他のプラットフォームでも動作するようです。 SunOSには、Solarisによって継承された同様の(そして古い) 'truss'ユーティリティがあります。私は、 'truss'は独自の' ktrace'ユーティリティを持ったBSDでも動作すると信じています。私はそれらを使ったことはありませんでしたが、私はIrixとTru64にそれぞれ 'par 'と' trace'があり、すべて同じ目的を果たしていると聞きました。 – ephemient

+1

ほとんどの場合、プログラムはすべて同じことをします。それらは異なる出力形式を持ちますが、ほとんど同じ情報です。 HP-UXでは、コマンドはtuscと呼ばれます。 –

+0

[プロセスがそのような 'strace'監視を壊す方法はありますか?](http://security.stackexchange.com/questions/8485/monitoring-system-calls-and-signals) –