簡単に言えば、strace は、プログラムによって発行されたすべてのシステム コールを、そのリターン コードとともにトレースします。ファイル/ソケットの操作や、もっとあいまいなものなどを考えてみてください。
ここでのシステム コールは標準の C ライブラリ コールをより正確に表しているため、C の実用的な知識があれば最も役に立ちます。
あなたのプログラムが /usr/local/bin/cough だとしましょう。単純に使用:
strace /usr/local/bin/cough <any required argument for cough here>
または
strace -o <out_file> /usr/local/bin/cough <any required argument for cough here>
'out_file' に書き込みます。
strace の出力はすべて stderr に送られます (ファイルの量が多いため、しばしばファイルへのリダイレクトが要求されることに注意してください)。最も単純なケースでは、プログラムはエラーで中止され、strace 出力で OS との最後の対話がどこにあったかを確認できます。
詳細については、次の情報を参照してください:
man strace
トレースの概要
strace は、軽量のデバッガーと見なすことができます。これにより、プログラマー/ユーザーは、プログラムが OS とどのように対話しているかをすばやく知ることができます。これは、システム コールとシグナルを監視することによって行われます。
用途
ソースコードを持っていない場合や、わざわざ実際に調べたくない場合に適しています。
また、GDB を開きたくないが、外部とのやり取りを理解したいだけの場合は、独自のコードに役立ちます。
簡単な紹介
ここでは、strace を使用してプロセスのハングをデバッグするための簡単な紹介を示します:strace の紹介