我的感受從windows平臺轉到linux平臺一個不適應的地方就是調試器的使用。由於windows下調試器基本上都依賴快捷鍵和圖像界面來完成操做,就算是windbg這種僞命令行的工具,命令也很簡單比較好記。html
相比之下GDB屬於很複雜的了,網上找到的一些GDB的文章列出的每每都是一些沒什麼卵用的命令,因此開個帖子記錄下經常使用的命令。linux
插件安裝git
1.gdb-pedagithub
這是一個調試時必不可少的神器,github地址在:https://github.com/longld/peda ,它的安裝兩條簡單命令便可完成:windows
1.git clone https://github.com/longld/peda.git ~/peda安全
2.echo "source ~/peda/peda.py" >> ~/.gdbinit工具
peda的一個實用命令checksec檢測安全保護。spa
peda的另外一個實用命令searchmem用搜索內存插件
file 路徑 附加文件命令行
r 開始執行
c 繼續執行
step 單步步入
next 單步步過
b *地址 下斷點
enable 激活斷點
disable 禁用斷點
info b 查看斷點
del num 刪除斷點
x/wx $esp 以4字節16進制顯示棧中內容
stack 100 插件提供的,顯示棧中100項
find xxx 快速查找,很實用
s 按字符串輸出
x 按十六進制格式顯示變量。
d 按十進制格式顯示變量。
u 按十六進制格式顯示無符號整型。
o 按八進制格式顯示變量。
t 按二進制格式顯示變量。
a 按十六進制格式顯示變量。
c 按字符格式顯示變量。
f 按浮點數格式顯示變量。
x/<n/f/u> <addr>
n、f、u是可選的參數。
b表示單字節,h表示雙字節,w表示四字 節,g表示八字節
可是實際的組合就那麼幾種:
x/s 地址 查看字符串
x/wx 地址 查看DWORD
x/c 地址 單字節查看
x/16x $esp+12 查看寄存器偏移
set args 可指定運行時參數。(如:set args 10 20 30 40 50)
show args 命令能夠查看設置好的運行參數。
如上所示,這是peda的棧視圖。其中紅色的是棧幀的返回地址,藍色的表示這個值可能爲指針。、
針對peda的使用我已經單獨開了一篇文章來寫:http://www.cnblogs.com/Ox9A82/p/5729308.html