毎回調べている気がするのでメモ。
(たぶんころころ書き加えていきます
作業内容 | 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 とかやると良い感じ。