眾所周知,除錯的辦法有 折半插斷點輸出的方式,還有區域性注釋編譯執行的方式之外,就是gdb除錯了
現總結gdb除錯中常用的語句操作。
首選,利用終端編譯檔案的時候,需要使用選擇項 -g 編譯可執行檔案,不然的花,無法進行gdb除錯
gdb的基本語句
命令:
list 顯示區域性**
b 行號 在第幾行插入斷點
b 函式名在此處插入斷點
b 另乙個檔名 行號 在此處插入斷電
info break 檢視斷點資訊
run執行
n下一行
p 變數檢視變數的值
continue 跳到下乙個斷點
q退出,終止除錯
step 進入到函式裡面
delete 刪除所有斷點
clean刪除當前斷點
linux系統下執行程式,會有乙個經常遇到的問題---段錯誤 利用gdb除錯尋找段錯誤的方法
首先了解一下造成段錯誤的原因:
1.指標沒有申請空間卻賦值
2.訪問了系統保護的記憶體位址 int *p = (int *)0
3.訪問唯讀的記憶體位址
4.棧溢位
·查詢段錯誤的原因
1.在終端中輸入 ulimit -c 1024 (開出1024空間抓取段錯誤)
2. gdb ./debug ./core.***x
3. bt 列印段錯誤,找到出錯的在第幾行
附上乙個樣例
gdb 除錯入門(二) 使用終端進行 gdb 除錯
在安裝完 gdb 後,就可以嘗試使用 gdb 在終端中除錯程式了,如果對安裝 gdb 存在疑惑,請參考 gdb 除錯入門 一 windows linux ubuntu 下安裝 gdb。首先編寫乙個簡單的helloworld.c include intmain 你也可以定位到你需要除錯的 c 程式,然...
利用GDB進行多執行緒除錯
一 多執行緒除錯 多執行緒除錯重要就是下面幾個命令 info thread 檢視當前程序的執行緒。thread 切換除錯的執行緒為指定id的執行緒。break file.c 100 thread all 在file.c檔案第100行處為所有經過這裡的執行緒設定斷點。set scheduler loc...
利用GDB進行多執行緒除錯
一 多執行緒除錯 多執行緒除錯重要就是下面幾個命令 info thread 檢視當前程序的執行緒。thread 切換除錯的執行緒為指定id的執行緒。break file.c 100 thread all 在file.c檔案第100行處為所有經過這裡的執行緒設定斷點。set scheduler loc...