GNU/Linux >> Linux の 問題 >  >> Linux

strace はどのように使用する必要がありますか?

簡単に言えば、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 の紹介


Linux
  1. 学術論文でUbuntuを引用する方法は??

  2. コンテンツキュレーションとは何ですか?どのように行う必要がありますか?

  3. 故障した Btrfs デバイスを交換する方法

  1. Ubuntu:systemd-resolved が使用するポート 53 を共有する方法

  2. OpenSSL を含む .c ファイルをコンパイルするには?

  3. dos2unix の使い方

  1. サービスを再起動するには、invoke-rc.d またはサービスを使用する必要がありますか?

  2. 部分的なディレクトリ パスを見つける方法は?

  3. スワップ パーティションのサイズはどれくらいですか?