Open kurodakazumichi opened 6 years ago
sudo apt-get update # updateしないとinstall gdbでこけた
sudo apt-get install gdb
gdb -tui test # gdbを起動(コンパイルしたtestを指定)
break main # main(エントリポイントにブレイクポイントを置く)
r # ブレイクポイントまで実行
disassemble # 逆コンパイルして機械語をアセンブリに変換
layout asm # アセンブリコードを表示
コマンド | 意味 |
---|---|
stepi | 次の命令を実行 |
i r | すべてのレジスタを表示 |
p $eax | レジスタeaxの内容を10進数で表示 |
p/x $eax | レジスタeaxの内容を16進数で表示 |
p/t $eax | レジスタeaxの内容を2進数で表示 |
display $eax | レジスタeaxの内容を命令を実行するたびに自動表示 |
info display | 自動表示する変数を表示 |
undisplay $eax | レジスタeaxの自動表示を解除 |
x &msg | メモリmsgの中身を表示 |
quit | gdbを終了 |
開発環境
Mac OSX + vagrant + VIrtualBoxで仮想環境を構築。
vagrant setup
Initial Setup
Install nasm
アセンブリ言語のコンパイラ
Create Hello World
test.asm
Execute Hello World