gdb除錯怪問題

2021-05-31 21:38:41 字數 598 閱讀 5986

1. 看清除錯的是否是已編譯的程式

今天gdb除錯遇到令人疑惑的問題:line number 701 out of range

看看原始檔才698行。果斷重新編譯,但是重新編譯後gdb除錯,仍然存在上述錯誤。

無奈,google。好像沒有答案。

。。。。。。

最後,原因:gdb除錯的應用程式不是我重新編譯後的結果,而是以前編譯的另乙個版本。

哎。鬱悶。

以後遇到這樣的問題,果斷重新編譯後絕對沒有問題。當然前提是你gdb除錯的程式是你重新編譯過的程式。

2. gdb 中慎用回車

在gdb中使用回車,表示執行最後乙個命令,的確方便,但是如果除錯多程序,attach到另乙個程序,使用回車會造成意想不到的後果。

attach到另乙個程序後,用b加入斷點後,使用c命令,繼續執行程序,這是有可能你要使用回車,空出一塊空間,便於檢視執行後輸出的log。但是當你attach的程序被觸發後,你發現程序並沒有停住,會看到如下輸出;

(gdb) 

continuing.

這說明程式已經停住了,但是又被繼續執行了,原因當然就是之前多次回車造成的

所以多程序gdb時慎用回車吧。

gdb 除錯 vs除錯

一 先要生成二進位制檔案 g g 1.cpp o 1.out g引數不要省,不然 gdb l 引數用不了 二 引數 設定斷點 設定 函式斷點break func 在某行設定斷點break 7 檢視斷點資訊 info break 刪除斷點 d 刪除所有斷點 d 3 刪除第三個 執行 r 下一步 n 逐...

GDB除錯命令以及GDB除錯段錯誤

一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...

gdb除錯命令

一 gdb常用命令簡介 rrun 執行.程式還沒有執行前使用 c cuntinue 執行到下一斷點處 qquit 退出tab tab命令補全功能 h help幫助s step 跟入函式 nnext 執行下一行的 如果是函式呼叫,也當作一行 執行到此函式返回 b breakpoint 設定斷點,用法 ...