5.pwn入門新手 簡單練習gdb調試

#gdb命令
在這裏插入圖片描述(1)frame n: 查看第n楨的信息, frame可以用f縮寫
(2)frame addr: 查看pc地址爲addr的楨的相關信息
(3)up n: 查看當前楨上面第n楨的信息
(4)down n: 查看當前楨下面第n楨的信息
https://blog.csdn.net/wang_xya/article/details/46011019 這位大佬的命令更爲詳細
在這裏插入圖片描述在這裏插入圖片描述

#include <stdio.h>
int sum(int n)
{
    int ret = 0;
     if( n > 0 )
  {
    ret = n + sum(n-1);
 }
return ret;
}
int main()
{
int s = 0;
s = sum(10);
printf("sum = %d\n", s);
return 0;
}

我們編譯一下這個代碼 然後用gdb運行
在這裏插入圖片描述
開始運行
在這裏插入圖片描述
查看棧中 函數的 調用順序
在這裏插入圖片描述
查看寄存器的值
在這裏插入圖片描述查看當前棧幀的詳細信息

在這裏插入圖片描述
上圖中顯示的信息有:
a. 當前楨的地址: 0xbffff400
b. 當前楨PC: eip = 0x8048516
c. 當前楨函數: bar (test.cpp:16)
d. caller楨的PC: saved eip 0x8048535
e. caller楨的地址: called by frame at 0xbffff420
f. callee楨的地址: caller of frame at 0xbffff3e0
g. 源代碼所用的程序的語言(c/c++): source language c++
h. 當前楨的參數的地址及值: Arglist at 0xbffff3f8, args: name=0x8048621 “jessie”, myname=0x804861c “jack”
i. 當前相中局部變量的地址:Locals at 0xbffff3f8, Previous frame’s sp is 0xbffff400
k. 當前楨中存儲的寄存器: Saved registers: ebp at 0xbffff3f8, eip at 0xbffff3fc
!](https://img-blog.csdnimg.cn/20200217171014708.png)

查看棧中的內容從棧頂開始
在這裏插入圖片描述

發佈了7 篇原創文章 · 獲贊 13 · 訪問量 1431
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章