3

ユーザーからの入力を待機する 1 つのスレッドでマルチスレッド プログラムをデバッグしようとしています。他のスレッドの関数にブレークポイントを設定してアプリを実行すると、同じブレークポイントに切り替わり、すぐに入力スレッドに切り替わるため、アプリはユーザーからの入力を待機し、gdb でコマンドを実行できません。同じ関数を呼び出す前に、すべてのスタックを確認する必要があります。bt コマンドが作れない

4

2 に答える 2

1

あなたthread apply all btの質問に答えますか?

于 2012-11-05T16:13:56.277 に答える
1

コマンドをブレークポイントに追加できます。マニュアルを参照してください。このようなもの:

(gdb) break some_func
Breakpoint 2 at ...
(gdb) commands 2
Type commands for breakpoint(s) 2, one per line.
End with a line saying just "end".
>thread apply all bt full
>end
(gdb) cont
Continuing.
Breakpoint 2, ...
Thread 1 (Thread 0x....
...

編集 0:

ああ、私はあなたがgdbこれをあなたに印刷していると思います:

---Type <return> to continue, or q <return> to quit---

実行する前に次のことを行ってください(これをファイルrunに貼り付けることもできます)。.gdbinit

(gdb) set pagination off
于 2012-11-05T16:26:50.290 に答える