毎回調べている気がするのでメモ。
(たぶんころころ書き加えていきます
| 作業内容 | windbg | gdb |
| 実行 | g | r |
| ブレークポイント | bp | b |
| ブレークポイント 一覧 |
bl | i b (info breakpoint) |
| ブレークポイント 削除 |
bc | d |
| ステップ実行 (Step over) |
p | n |
| ステップ実行 (Step Into) |
t | s |
| メモリ内容表示 | d d(a,b,c,d…) |
d x/(o,x,u,t,8xb..) |
| 変数内容表示 | dv (変数名) | print (変数名)
p *0x000 みたいなのも可 |
| レジスタの値 | (レジスタウィンドウを見る)
dd eax.. |
i r
i r eax.. |
| 逆アセンブル結果 | (Disassemble ウィンドウをみる) | disas (関数名) |
| ソースコード | (ウィンドウを見る) | list (関数名) |
・・とりあえず、良く忘れるので(
あといくつかメモ:
gcc でビルド時にデバッグ情報を入れる:
→ gcc –g でビルドしてやる
objdump で Intel 記法で眺められるようにする:
→ objdump –M intel で眺める。
ex) objdump –M intel –D a.out .. のように。
VC コンパイラでデバッグ情報を入れる:
→ cl /Zi でビルドする。
VC コンパイラ環境で objdump っぽいことをする:
→ dumpbin a.exe /disasm とかやると良い感じ。