[GDB]使用gdb查看內存

1、使用gdb查看內存函數

命令: x /nfu
x 是 examine 的縮寫
n表示要顯示的內存單元的個數
f表示顯示方式:
x 按十六進制格式顯示變量
d 按十進制格式顯示變量
u 按十進制格式顯示無符號整型
o 按八進制格式顯示變量
t 按二進制格式顯示變量
a 按十六進制格式顯示變量
i 指令地址格式
c 按字符格式顯示變量
f 按浮點數格式顯示變量
u表示一個地址單元的長度
b 單字節
h 雙字節
w 四字節
g 八字節
例子:
x /1dw address
從內存地址address讀取內容,顯示一個4字節的十進制整數調試

2、調試子進程進程

1.set follow-fork-mode <parent/child> 
如在fork函數執行以前執行set follow-fork-mode child,默認gdb是調試主進程的。
2.attach<pid>
利用attach <pid>命令附着到子進程而後進行調試。內存

3、利用gdb捕捉後臺進程的輸出後臺

call close(1) 
call open("...") 
call dup2(...,1) 變量

4、監視值變化二進制

一、使用watch variable設置監視點,當value變化時,gdb會中斷。call

二、當離開variable的定義範圍時,可能會使監視點不起做用。 能夠使用地址監視:gdb

 print &variable找出地址address,而後watch *(int*)address。db

相關文章
相關標籤/搜索