GDBデバッグ手法をマルチスレッド

将来の参照のための次のレコードの一般的な文の検索ので、マルチスレッドデバッグ用のGDBにインターンシッププロジェクトの必要性、。

ネットワークからの議論の内容。

よく使用するコマンド:

*あなたが直接、省略文を入力することができ、あなたはまた、完全な文を入力することができます。
1. b main.cpp:15ライン15 main.cppに中断点において。そのような私は、条件が満たされた場合にのみ、ブレーク力を2 ==場合などの条件を続けることができます。
2. r [option]速記を実行しています。ノーブレーク後に存在する場合、プログラムが終了するまで実行され、実行し続けます。
3. n次の行を実行し、次の省略形です。
図4は、s次に実行すべき関数の内部に、ステップの略です。シングルステップ実行、プログラムの開始は、最初の行で停止します。6. 設定した変数の値は、変数aは、ここで1に設定されています。7. 関数呼び出しスタックフレームとスタックを確認してください。8. 速記は、引き続き実行し続けています。図8は、速記印刷、変数の値を出力し、可変印刷の値です。9. のような、情報を閲覧するためのビューのブレークポイントの条件。10 、デルDが簡略で、ブレークポイントを削除することができ、ブレークポイントは、前のコマンドを介して利用可能な入札数です。印刷11. dispalyこの場合、各ステップは、変数を印刷します行います。12. undispaly変数を印刷キャンセル、逆の操作でステップを行いました。ここでの注意は、非変数名の番号でした。インフォメーションディスプレイを通して見るする必要はありません。13 GDBを終了し、終了して簡略化したものです。
start
set var a=1
bt
c
p a
infoinfo break
d bID


q

マルチスレッドのコマンド:

1. info threads現在のプロセスのスレッドを確認してください。gdbが「*」が先行し、各スレッドのIDを割り当てます現在実行中のスレッドを示します。
2. thread IDスレッドのデバッグを切り替えます。
6. b main.c:10 thread allすべてのスレッドの場合は、ポイントを破ります。
7. set scheduler-locking off|on|step
8. thread apply ID1 ID2 commandIDL ID2を実行します。
9. thread apply all commandすべてのスレッド。

マクロ定義のデバッグ:

マクロがプリコンパイルされているので、デフォルトでは印刷できません。マクロ定義をデバッグするためには、プログラムをコンパイルするときにパラメータを追加する必要があります-ggdb3

公開された11元の記事 ウォン称賛15 ビュー10000 +

おすすめ

転載: blog.csdn.net/DJ_xiaoming/article/details/104376777