將日常常用的gdb操作記下來,記憶力不好
1.gdb 除錯程式
gdb 程式檔案
2.gdb 除錯程序
gdb attach 程序pid
3.gdb 除錯core檔案
gdb --core=core檔案 也可以 gdb -c core檔案
也可以 gdb xx.dbg(帶-g編譯後的可執行檔案) core檔案 這樣挺方便的,同時載入帶符號的檔案和core檔案
4.gdb 常用命令
打斷點:
b 函式名 or 檔名:行號
info b 檢視所有斷點
delete b 斷點編號(可以從info b裡看到)
disable b 斷點編號
frame操作:
info f 檢視所有frame
frame frame編號 切換frame(可以從info f 看到)
info locals (可以檢視所有當前frame的區域性變數)
bt 檢視程序經歷的frame列表
在除錯core檔案,以及檢視當前執行點之前的frame裡區域性變數很有用
一般操作:
p 變數名 列印變數值
n 下一步
s 下一步,如果是函式會進入呼叫的函式裡
finish 跳出迴圈或者函式
c 繼續
ctrl+c 中斷,這樣就可以進行gdb設定,比如設定新的斷點,檢視其它資訊之類,一般在c命令使用後,又想進行gdb操作時使用
好像經常用的就這麼多,發現gdb是個神器啊,+上emacs+cscope+autocomplete,+make,真的不需要ide了,emacs的編輯速度真夠快的。另外tcpdump是個除錯網路的神器,介紹的文章網上很多
GDB使用小記
by francis hao nov 7,2016 記錄gdb常用功能。gdb可以讓你檢視乙個程式在執行時其內部發生了什麼,或者當乙個程式崩潰時發生了什麼 通過使用gdb檢視core dump檔案 基礎 啟動gdb gdb 僅啟動gdb,未引導程式檔案,可通過file program進行載入,也可以...
gdb除錯學習小記
由於最近搞了一發sublime text的使用,然後發現這東西只能當編譯器,不能用來除錯 於是便去學了一發gdb的除錯方法。然後發現報錯了?仔細一看,原來是pascal的gdb把c 的gdb覆蓋掉了233 怎麼那麼相似呢 機房渣渣win7 32bit mingw file 檔名 開始除錯這個檔案 r...
GDB除錯core檔案小記
1.如果不走配置,必須在當前shell中設定core檔案的限制 2.在當前shell中設定core限制,在其他shell中啟動程式,是不會生效的 3.core一般很大,最好設為unlimited 4.root 使用者使用ulimit c unlimited命令,開啟core dump功能,並且不限制...