linux c 小程式 gdb除錯命令 例子

2022-08-02 02:30:12 字數 1120 閱讀 2249

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 為將...