用gdb除錯程式(二)

2021-05-24 01:46:07 字數 915 閱讀 9280

變數的追蹤

struct people

假設有乙個陣列int a[10],使用命令

(gdb)p a

$1 =

當時如果這個陣列是動態建立的,如int  *a = (int *)malloc(10 * sizeof(int));,則會有不同

(gdb)p a

使用上面的命令只會輸出陣列中的第乙個元素,為了輸出整個輸出,可以使用下面的命令

(gdb)p *a@10

使用display/p

另外乙個有用的輸出命令是display/disp,這個命令會在每一次程式中斷執行時,輸出某個變數的值。遇見斷點,單步除錯等,只要中斷一次,就輸出一次,這樣就省的每次都輸入命令。

使用commandsl

使用commands命令,你可以做更多,你可以輸入一串命令,做你想做的很多事。不光可以輸入gdb命令,還可以使用call命令,呼叫**中的某個函式。假設,你有乙個佇列輸出函式printqueue(queue ),你可以如下,在某個斷點處呼叫這個函式。

(gdb)commands identifier

type commands for when breakpoint 1 is hit, one per line.

end with a line saying just "end".

>call printqueue(queue);

>end

這樣,每當到達identifier標定的斷點,都會呼叫函式printqueue。如果想取消這個函式呼叫,只需使用如下命令

(gdb)commands identifier

type commands for when breakpoint 1 is hit, one per line.

end with a line saying just "end".

>end

《用GDB除錯程式(二)》

gdb的命令概貌 啟動gdb後,就你被帶入gdb的除錯環境中,就可以使用gdb的命令開始除錯程式了,gdb的命令可以使用help命令來檢視,如下所示 gdb的命令很多,gdb把之分成許多個種類。help命令只是例出gdb的命令種類,如果要看種類中的命令,可以使用help 命令,如 help brea...

用GDB除錯程式

用gdb除錯程式 gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這...

用GDB除錯程式

七 設定顯示選項 gdb中關於顯示的選項比較多,這裡我只例舉大多數常用的選項。set print address set print address on 開啟位址輸出,當程式顯示函式資訊時,gdb會顯出函式的引數位址。系統預設為開啟的,如 gdb f 0 set quotes lq 0x34c78...