GDBのチートシート(ターミナルでやるとき版)
- gdb <ファイル名>
- ファイルをgdbで開く
- dissass <関数名>
- 関数名のディスアセンブル結果を表示する
どこにブレークポイントを入れるかをみることができるよ
一部地域では、objdump -M intel -d と同じ結果が出るらしいと言い伝えられている
- 関数名のディスアセンブル結果を表示する
- break *<関数名>+<行数>
- どこにブレークポイントを置くか決める
[POINT] ブレークポイントが置かれる前までで処理が止まることを忘れないように!
- どこにブレークポイントを置くか決める
- delete <ブレークポイントナンバー>
- ブレークポイントを削除するよ
- next
- アセンブラを一行ずつ実行する。callされた場合は、その関数の中には入らない
- stepi
- アセンブラを一行ずつ実行する。callされた場合は、その関数の中に入る
- continue
- 次のブレークポイントまで実行。
- finish
- 現在の関数の終了まで実行
- until
- 現在のループが終了するまで実行
- run
- mainの頭から初めのブレークポイントまで実行
- print <var>
- p var:varの値を確認する
- print var=3:varの値を3に書き換える
- 他にも色々機能あるらしい(諸説あり) - x
- メモリの値を確認する
- x array:arrayのアドレスをダンプする
今日掴んだgdbの順序
- gdbにファイルを読み込ませる
- ダンプしたいところを見つける
- ブレークポイントを置く
- 実行を続ける
- flagを回収