GDB 簡單易上手的新人教程

2021-09-27 12:44:53 字數 1958 閱讀 9840

gdb, 又稱gnu偵錯程式,是用來幫助除錯我們程式的工具。

gdb可以幹以下幾件事:

1. 給程式設定(特定條件下的)斷點

2. 當程式停在斷點處時,我們檢視所有變數、暫存器的值

3. 當程式停在斷點處時,我們除了能檢視所有變數、暫存器的值以外,還能在不改變源**的情況下改變這些值(這個確實屌)

在我們學習使用gdb除錯程式之前,我們先看看gdb有哪些命令。

命令功能

rrun, 直接調到斷點處,沒有設定斷點的話直接執行程式

b fun

設定乙個斷點breakpoint在函式」fun」的最開始

b n在當前執行原始檔的第n行設定斷點

b file.c:n

在當前原始檔file.c的第n行設定斷點

d n刪掉delete第n行的斷點

info break

顯示所有斷點資訊

c繼續(continue)執行程式,一直到下乙個斷點或程式結束

f執行直到當前函式(function)結束

s按step除錯1行,會進入函式體

s n按step除錯接下來的n行

n除錯1行,與按s命令不同的是此處不進入函式體

p var

輸出(print)變數」var」的值

set var=val

設定變數」var」的值

bt列印呼叫堆疊(stack trace)

q退出gdb

gdb有如下兩種使用方式

1. 除錯會崩潰、有邏輯錯誤的程式

2. 除錯程式崩潰時自動生成的coredump

編譯並構建程式,加上除錯選項-g,e.g. gcc -g main.cpp -o test.out

用gdb來執行程式,gdb test.out

使用gdb命令來分析、除錯程式

退出gdb

源**

#include

int main()

while ( balance >= target );

printf("%d no. of years to achieve target balance.\n", year);

return

0;}

一下為詳細除錯步驟

步驟1:編譯並構建程式,加上除錯選項-g

gcc -g main.c -o test.out

步驟2:用gdb來執行程式

gdb test.out

步驟3:在main函式入口處設定乙個斷點

b main

步驟4:執行程式

run

步驟5:使用step除錯到13行

s

步驟6:檢視balance, rate, interest的值

p balance

p rate

p interest

步驟7:使用step除錯到15行

步驟8:檢視balance, rate, interest的值(發現沒有迴圈,表明while條件出錯,應該是balance < target)

gdb: the gnu project debugger

debugging with gdb

gdb tutorial

GDB 簡單易上手的新人教程

gdb,又稱gnu偵錯程式,是用來幫助除錯我們程式的工具。gdb可以幹以下幾件事 1.給程式設定 特定條件下的 斷點 2.當程式停在斷點處時,我們檢視所有變數 暫存器的值 3.當程式停在斷點處時,我們除了能檢視所有變數 暫存器的值以外,還能在不改變源 的情況下改變這些值 這個確實屌 在我們學習使用g...

GDB簡單教程

本文的內容基本來自 這篇教程,我在使用裡面的示例程式時遇到了 is not a file or directory 的錯誤,因此修改了一下原來到源程式。這個示例程式很簡單,包含兩個類 node和linkedlist。為了方便除錯,我們將這兩個類放到乙個檔案中。首先檢查是否安裝gdb。如果您的系統中有...

簡單易上手的Vue專案建立

安裝node.js v10 查詢版本號 node v npm v安裝git工具 安裝cnpm npm install g cnpm registry 安裝腳手架 cnpm install vue cli g建立專案 vue create 專案名稱啟動專案 進入專案目錄 執行 npm run serv...