取得其他 architecture 的 gdb 版本, 才可以 debug arm 平台。
sudo apt-get install gdb-multiarch set architecture i8086
layout asm 顯示組合語言 ctrl+x ctrl+a 切換為 TUI mode stepi (si) /nexti single for asm
在 c 和組合語言交互
20240229 補充:
在 tui mode 下如果開啟 mouse 支援, 無法在終端機用 mouse 複製/貼上, 可以按下 shift, 就可以複製貼上。我測試了 set tui mouse-events off 試圖關掉 mouse support, 但 gdb 回沒有這個指令。
ref:
trace system call 組合語言時, gdb layout asm 畫面 |
這是在 debug simple os ipc 時, 我用的 script file。
gdb -x script gdb -x gdb.sh搞定。
指定某記憶體位址做反組譯
disassemble 0x00b068ea,0xb0695f
modify register, memory address, variable value
set $eax = 0 set {int}0x83040 = 4 set variable i = 10
在某個位址設定中斷點
(gdb) break *0x7c00
找出所有的 source files: info sources 指定 source files path: source/directory source_file_path
使用 gdb 反組譯 gdb -batch -ex 'file exe_file' -ex 'disassemble main'
ref:
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。