gdb

c言語

アセンブラまで展開するgdb
基礎編

GDB マニュアル - Table of Contents

$gcc -g3 abc.c <– g3であること

(gdb)!(ここに通常のlinuxコマンドを指定して実行できる)

l(ist) 1 <– 1行目からリストを表示
b 10: <— 10行目にブレークポイントを設定
r(un) <— 実行

コマンド 効果
n ステップ実行(1行ずつ実行/関数は飛ばす)
s ステップ実行(1行ずつ実行/関数の中に入る)
c 次のブレークポイントまで処理を実行
f 現在の関数を抜けるまで処理を実行
u 現在のループを抜けるまで処理を実行
ret -1 現在の関数を戻り値-1として強制的に抜ける ※以降の処理は実行されない

——
コマンド 効果
p var1 変数var1の値を見る
(構造体ならa.bでメンバ変数を参照可能。ポインタなら*fpなどで中身を見れる。p strlen(buf)、p buf[3]、p a->bなど結構柔軟に見れます)

bt バックトレース(現在の関数が呼び出されるまでの経路)を表示

l ソースコードを表示 l 1,10 <– 最初の行指定と表示したい行番号
l 0か1だと最初から初期値の表示行数で表示される

info macro マクロ名 マクロの定義を確認

i lo ローカル変数を全部見る

——
・値の書き換え
コマンド 効果
p var1=-1 変数var1の値を-1に変更

No tags for this post.
タイトルとURLをコピーしました