GDBコマンド:GDBを使用する前に、コンパイラの必要性を追加するためのパラメータ-g G ++(デバッグ・シンボル・テーブルを生成します)
1、GDBファイル名//実行可能ファイルをデバッグします
- >デバッグの終了(q)を終了
図2に示すように、ポーズ機構(①ブレーク、②監視ポイント、③捕捉ポイント)のみブレークポイントここに述べました。
ブレーク関数名(B)
破断線番号
ブレークパス:行番号(demo_11_15 / swap.cpp:5)
パスのブレーク:関数名(demo_11_15 / swap.cpp:スワップ)
インフォブレークポイント(IB)//すべてのブレークポイントを見ます
注:ときに実行(R)停止することなくGDBで、新たなコードがコンパイルされ、GDBコード変更を知覚することができます
削除ブレークポイント番号または関数名(あなたはIBを使用する前に最初のブレークポイントを参照してください)//削除一つ以上のブレークポイント
GDBを実行するための次の命令で明らか//明確なブレークポイントは、とき削除用法が似て使用することができます。
//無効にブレークポイントを無効にブレークポイント
ブレークポイントを有効にする//ブレークポイントを有効にします
注:以下の図のタイプが有効になっているようなタイプ(①ブレーク、②ポイントを監視、③キャプチャポイント)ブレークポイントのステータスのために、DISP(キープ、デル、DIS)に、eNBです。
3、プログラムの実施
実行(R)//プログラムを実行します。または再実行
ステップ(S)//シングルステップ(入力機能)。
次の(n)を//シングルステップ(関数を入力しません)。
(C)//は、次のブレークポイントまたは終了するまで継続し続けます。
後者で継続N // Nブレークポイントは、停止、(イタリアのループが実行されたNサイクル)ブレークポイントでのn + 1には、停止していません。
現在の関数のfinsh(フィン)//エンドの実行
現在のサイクルが完了した後に(U)//まで。次までは図の特殊なケースです。あなたはまた戻って今までの数、関数名を並べることができます
図4に示すように、条件付きブレークポイント
停止したとき、私は> 5 // I> 5ループを実行する場合、メイン破ります。
私は10を==場合は、メイン破ります
但し、私== 3とのcond 1私== 3 //通常の設定条件付きブレークポイント、ブレークポイント1、
condの1 //通常のブレークポイントブレークポイント1を再開
。。。。コンプレックスは、後に補足します。
5、ウォッチポイント
私はライブの変更を中断します//各時間を見ます。
ウォッチ式
6、変数
印刷変数(P)//変数の値をプリントアウトします。
私も同様のP / CIおよびP / SI //印刷ASCII文字と文字列のp / XI //印刷進値
情報地元の人々は、//現在のスタックフレームのすべてのローカル変数を印刷します
セット$ iが0 PW = [$ I ++] //プログラムWアレイとして配列のインデックスiを可能にする場合。私は便利な変数(コンビニエンス変数)GDBが提供され
P * $私は、$ iの値を印刷する//