一、使用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位元組的十進位制整數
二、除錯子程序
1.set follow-fork-mode
如在fork函式執行之前執行set follow-fork-mode child,預設gdb是除錯主程序的。
2.attach
利用attach 命令附著到子程序然後進行除錯。
三、利用gdb捕捉後台程序的輸出
call close(1)
call open("...")
call dup2(...,1)
四、監視值變化
1、使用watch variable設定監視點,當value變化時,gdb會中斷。
print &variable找出位址address,然後watch *(int*)address。
gdb除錯使用
功夫再牛也怕菜刀,程式設計師不可能不犯錯誤,在linux下面除錯我們使用gdb,這次就講他的使用,它可以除錯c和c gdb提供的功能有 1.監視程式中的變數的值 2。設定斷點停止 執行 3,一行行的執行 使用方式很簡單,在命令列鍵入gdb就能用了,正常啟動就會有如下類似的內容,在這裡可以鍵入命令來指...
GDB使用入門
gdb 是gnu 發布的一款功能強大的程式除錯工具。gdb主要完成以下三個方面的功能 1 啟動被除錯程式 2 讓被除錯的程式在指定的位置停住。3 當程式被停住時,可以檢查程式狀態 如變數值 啟動gdb的方式有兩種 1 gdb 除錯程式名 例如 gdb hellwworld 2 gdb file 除錯...
gdb使用小結
一 gdb除錯前置條件 無論是c還是c 程式,在可以使用 gdb除錯程式之前,必須使用 g 選項編譯原始檔,這樣才能產生除錯資訊。c程式,可在makefile 中如下定義cflags 變數 cflags g 二 部分命令的使用說明 step和next都是單步執行 但是單步執行到函式時就有點不同了,s...