大部份的錯誤都是常數忘記加上 "$",或是 instruction 的單位用錯。
即使如此,code 還是常常不如預期,幸好我們可以很簡單的用 GDB 來 debug。
相關步驟如下:
| "as -gstabs | add debug information to object |
| "objdump -D a.out | less" or "nm a.out" | 利用此步驟找到相關變數或 label 的 address |
| "gdb a.out" | 執行 GDB |
| "b label name" | 對要監控的 label 下斷點 |
| "display /i $pc" | 顯示當前執行的組語 |
| "run" | 執行程式 |
| 斷點觸發 | |
| "info all-registers" | 觀看目前所有暫存器值 |
| "p $eax" | 觀看 eax |
| "p abc" | 觀看 variable abc |
| "x/x address" | 觀看 address hex value |
| "step" | 單步執行 |
當然也可以使用包裝 GDB 的 GUI tool。
