gdbを練習したのでメモ

  • tui オプションをつけるとDDDっぽくなる。Ctrl-x aで切り替え
コマンド 略称 効果
print p 引数の情報表示する
break b 引数の場所にbreakpointを設定する。
condition cond 引数の番号を持つbreakpointにif文追加
clear 引数のbreakpointを消去。引数の指定は設定のときと同じ。引数なしの場合は次のbreakpointを消去
list 引数の場所にフォーカス
info breakpoints breakpointの情報表示
tbreak tb 一回だけのbreakpoint設定
delete del 引数にbreakpointの番号。引数なしの場合はbreakpointの全消去
enable breakpoint有効
disable breakpoint無効
step s 逐次実行関数の中に入る。
next n 逐次実行、関数の中に入らない。
until u ループから抜ける。引数を指定するとtbと同じような動作
continue c 次のbreakpointまで実行。引数に数字をとれる。数字の文だけbreakpoint無視
finish fin 関数の末尾まで実行
commands 引数にbreakpoint番号。そのbreakpointでとまったときに実行するコマンド設定。
watch 引数の変数が変更されたときにとまる。
display disp 引数にprintと同じもの。とまるたびにprintするようになる。
call プログラムの関数呼び出しtuimodeではうまく動作してない?
set 引数の値をセットする$hogegdbの新しい変数
info locals 現在のスコープにある変数一覧

breakpointの引数の指定方法

引数には(ファイル名:)数字,(ファイル名:)関数名が設定できる。つまり

break 3
break function
break filename:3
break filename:function

1行目は3行目にbreakpoint設定。
2行目はfunctionが呼ばれる場所に設定。
3行目はfilenameの3行目にbreakpointを設定。
4行目はfilename中のfunctionが呼ばれている場所に設定。

if hogehogeとすることでhogeという条件ときだけbreakするように設定できる。

break 3 if hoge

commandsの使い方

commands breakpoink 3
....コマンド....
end

と入力することによってbreakpoint3で常に...コマンド...に記入したコマンドを実行する。