Linux gdb 実行中のプログラムをデバッグする

1. デバッグしたいプログラムのプロセス番号を取得します。

2. gdb を使用して実行中のプログラムをデバッグします。コマンドは次のとおりです:
gdbattach 100717

3. 現在実行中のスレッドを表示するには、コマンドは次のとおりです。

情報スレッド

ご覧のとおり、現在20 個のスレッドが実行されています。

4. 各スレッドの基本情報を確認して、読み取りディレクトリがどのスレッドで実行されているかを確認します。コマンドは
thread apply all bt

スレッド4 がデバッグしたいスレッドであることが明確にわかります

5. デバッグ スレッドに入り、実行ステータスを確認します。コマンドは次のとおりです:
t 4

 スレッド4に切り替えることです

ところで

現在のスレッドのスタック状態を確認する

スレッドがmsisdn.c:920 でスタックしていることがわかりますここには while ループがあるため、ブレークポイントを設定してプログラムを再度実行します。

  ここで重要な点は、コマンド c です。これにより、プログラムの実行を継続できます。これは、gdb を実行した後、プログラムが停止し、シングル ステップ next を使用してメモリ変数を表示できるためです。

 

おすすめ

転載: blog.csdn.net/m0_72303088/article/details/131128937