利用終端進行GDB除錯

2021-08-14 10:51:47 字數 740 閱讀 5323

眾所周知,除錯的辦法有 折半插斷點輸出的方式,還有區域性注釋編譯執行的方式之外,就是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...