1:除錯函式的一系列命令,源**如下main.c
#include
int add_range(int low, int high)
int main(void)
結果為55 5015 與正確結果不同,除錯如下
1步驟: gcc -g main.c -o main linux下c原始檔編譯(含有源**,可以除錯):
gdb main 進入main函式的除錯
help幫助
l 1或者 l main 檢視源**
start開始除錯
n(next)下一步
s(step)跳進函式
bt(backtrace)檢視函式呼叫的棧幀
i(info) locals 檢視方法的區域性變數
f(frame) 1 選擇1號棧幀
i locals 檢視1號棧幀的區域性變數,即main函式的區域性變數
p(print) sum 檢視sum變數的值
finish 跳出當前函式,回到main函式
set var sum=0 修改變數sum的值為0
p(print) result[2]=33 print也可以像set一樣設定變數的值
2int main()
return 0;
}第一次輸入123正確,第二次錯誤
除錯命令如下:
start 啟動除錯
display sum 每次定下來都顯示sum的值
undisplay 取消對這個變數的跟蹤
b(break) 9 在第9行設定乙個斷點 引數也可以是函式名
c(continue) 表示連續執行,跳到下乙個斷點
i breakpoints 顯示已經設定的斷點
delete breakpoints 2 刪除斷點2
delete breakpoints 刪除所有的斷點
disable breakpoints 3 使某個斷點失效
break 9 if sum != 0 滿足條件才可以使用該斷點
r 重新從程式開始連續執行
x 命令列印儲存器中的內容 x/7b input 7b是列印格式,b表示每個位元組一組,7表示列印7組
watch input[5] 跟蹤某變數
Linux c 程式設計 GDB除錯
gcc g o 編譯後的檔名 需要編譯的c檔案 如 gcc g o test test.c命令 命令縮寫 命令說明 list l顯示多行源 break b設定斷點,程式執行到斷點的位置會停下來 info i描述程式的狀態 runr 開始執行程式 display disp 跟蹤檢視某個變數,每次停下來...
Linux C程式設計 2 使用GDB除錯入門
此例參考 linux c從入門到精通 一 示例程式 程式功能 輸入年月日後,判斷此日為此年中第幾日。檔名為year.c include int main sum sum day if year 400 0 year 4 0 year 100 0 leap 1 else leap 0 if leap ...
程式除錯gdb基礎
gcc 編譯器 gcc是linux平台下最重要的開發工具,它是gnu的c和c 編譯器,它總共提供的編譯選項超過100個,但只有少數幾個會被頻繁使用,收集如下。其基本用法為 gcc options filenames 最簡單的編譯方法是不指定任何編譯選項,會為目標程式生成預設的檔名a.out o 為將...