gdb除錯技巧

2021-08-19 20:38:09 字數 416 閱讀 6771

1、按結構體格式列印

set print pretty on

2.檢測點

watch //為表示式(變數)expr設定乙個觀察點。一量表示式值有變化時,馬上停住程式。

rwatch //當表示式(變數)expr被讀時,停住程式。

awatch //當表示式(變數)的值被讀或被寫時,停住程式。

info watchpoints //列出當前所設定了的所有觀察點。

經驗:觀察某個變數是否變化,被讀或者被寫,由於變數只在某乙個作用域,可以獲取變數的位址,然後觀察。

比如:觀察examined_rows變數神馬時候被修改

(1).p &examined_rows,得到位址

(2).watch *(ha_rows *) 0x7ffec8005e28,則可以觀察這個變數的變化情況。

GDB除錯技巧

在公司工作了一段時間,發現 b s結構的 除錯很麻煩,經常用的手段是通過 printf 打一串訊息來進行跟蹤,然後估計問題出在 通過逐步新增 printf 語句,獲得越來越多的資訊最終確定問題的根源。我感覺這樣比較麻煩,如果能把 gdb的單步除錯功能用上就好了。工作之餘,做了一定的嘗試,希望對跟我一...

GDB除錯技巧

談到gdb,不能不對他的強大功能所折服,在我所用過的所有偵錯程式中,這實在是乙個強大的除錯工具,今天就說說gdb的簡單用法。gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現...

gdb除錯技巧

1 以結構體形式訪問某個記憶體 print type addr 其中type是結構體型別,addr是記憶體的位址 2 顯示符號表 info symbol info symbol symbol addr symbol addr為對應的位址 print 符號名 3 檢視型別的原型定義 有時候在除錯大型程...