目次
前提:プログラムは自分で書く必要があります。!!
gdb ./xxx.out
基本的な指導
-g
このパラメータを使用して実行可能ファイルをコンパイルし、デバッグ テーブルを取得します。
リスト
ソースコードをリストします。
list 1
または
l 1
b
ブレークポイントを設定します。
b 行号
b 20 //在20行设置断点
条件付きブレークポイントを設定します。
b 行号 条件
b 20 if i=5
実行またはr
プログラムを実行してセグメント障害の場所を見つけます。
run
または
r
main関数に渡すパラメータを設定します。
run 参数值
run abc 123
次またはn
コードの次の行では、関数がスキップされます。
next
または
n
ステップまたは秒
コードの次の行に関数が入ります。
step
または
s
印刷または p
変数の値を表示します。
print 变量名
print i
または
p 变量名
p i
続く
ブレークポイントに続いてコードの実行を続けます。
やめる
gdb の現在のデバッグを終了します。
その他の指示
仕上げる
現在の関数呼び出しを終了します。
finish
引数を設定する
main関数に渡すパラメータを設定します。
set args 参数值
set args abc 123
情報b
ブレークポイント情報テーブルを参照してください。
info b
pタイプ
変数の型を表示します。
ptype 变量名
ptype i
ところで
現在のプログラムに存在するスタック フレームを一覧表示すると、スタック フレーム番号を確認できます。
bt
フレーム
スタックフレームを切り替えます。
frame 栈帧编号
frame 1
画面
追跡変数を設定します。
display 变量名
display i
非表示
追跡変数の設定を解除します。
undisplay 变量的编号
undisplay 2
プロセス関連
gdb でデバッグする場合、gdb は 1 つのプロセスのみを追跡できます。コマンドを使用して親プロセスを追跡するか、子プロセスを追跡するように gdb デバッグ ツールを設定します。デフォルトでは、親プロセスがトレースされます。有効にするには、fork 関数呼び出しの前に設定する必要があります。
トレース子プロセスを設定します
set follow-fork-mode child
トレース親プロセスを設定する
set follow-fork-mode parent