【Linuxシステムプログラミング】8.gdbデバッグツール

目次

基本的な指導

-g

リスト

b

実行またはr

次またはn

ステップまたは秒

印刷または p

続く

やめる

その他の指示

仕上げる

引数を設定する

情報b

pタイプ

ところで

フレーム

画面

非表示

プロセス関連

トレース子プロセスを設定します

トレース親プロセスを設定する

前提:プログラムは自分で書く必要があります。

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

おすすめ

転載: blog.csdn.net/CETET/article/details/130061813