1. 程式人生 > 其它 >12GDB在無符號表情況下除錯程式

12GDB在無符號表情況下除錯程式

1)載入無符號表程式

2)斷點到某一個函式,通過tab鍵可以模糊匹配查詢要斷點的函式
3)執行程式
4)檢視第一個引數暫存器:i r rdi,我們傳入的是字元a,可以看到檢視到的值是97(字元a的ascii),符合預期。
5)檢視第二個引數暫存器:i r rsi,我們傳入的是整數876,可以看到檢視到的值也是876
6)檢視第三個引數暫存器:i r rdx,我們傳入的是字串"abcd",可以看到檢視到,我們只能看到地址,但是可以通過該地址,使用以下兩種方式獲取到對應的真正的值:
a)p (char*)0x400ed5
b)x /s 0x400ed5,其中s代表是字串格式

  c) x /s $rdx,檢視儲存字串引數暫存器的地址

另外,說明如下:

a. 函式引數暫存器如下:
rdi 第一個引數
rsi 第二個引數
rdx 第三個引數
rcx 第四個引數
r8 第五個引數
r9 第六個引數
多於6個的引數會放到函式棧裡面了,而不是放到暫存器裡了。

b. 檢視所有通用暫存器:

i registers

c. 檢視所有暫存器:(不常用)

 i registers