gdb是gcc的除錯工具,主要用於c和c++語言編寫的程式。通過gdb除錯工具,我們可以設定斷點、檢視變數、動態改變程式的執行環境等,可以很好的幫助我們查詢程式的bug。
gcc -g test.c -o test
g++ -g test.cpp -o test
命令
解釋gdb program
gdb program core
gdb program id
啟動gdb。
program為編譯後的可執行程式;
core是程式非法執行後core dump產生的檔案
id為服務程式執行時的程序id
llist的縮寫,可以用來顯示原始碼資訊(包含行號)
b nb func
n為行號,func為函式名,表示在某一行或某個函式處加上乙個斷點
info break [n]
檢視斷點資訊,n為可選項,表示斷點的編號
rrun的縮寫,表示執行程式
n count
單詞執行count行。n是next的縮寫,count表示行數,預設為1。
p variable
檢視變數資訊。variable 為要檢視的變數
bt檢視函式堆疊
watch/rwatch/awatch cond
監控斷點,監控變數或表示式cond的變化。
watch:只有變數值發生變化時,程式才會停止執行。
rwatch: 只要程式**現讀取目標變數(表示式)的值的操作,程式就會停止執行。
awatch:只要程式**現讀取目標變數(表示式)的值或者改變值的操作,程式就會停止執行
catch event
捕捉斷點。event表示要監控的具體事件(如一些異常事件)
clear location
刪除斷點。location通常為斷點行號或函式名
disable [num…]
禁用斷點。num…表示可以有多個引數,表示要禁用斷點的編號。
比如: disable 1 2
enable [num…]
啟用斷點。num…表示可以有多個引數,表示要啟用斷點的編號
finish
退出函式。
q退出除錯,quit的縮寫。
#include
void
myfun()
intmain()
l命令:
新增斷點:
gdb除錯工具使用
gdb命令使用格式如下 gdb 選項 可執行程式 core檔案 程序id 常用選項 c core檔案 使用指定core檔案檢查程式 h 列出命令選項的簡要介紹 n 忽略 gdbinit檔案中指定的執行命令 q 禁止顯示介紹資訊和版權資訊 s 檔案 使用儲存在指定檔案中的符號表 gdb除錯時會用到的命...
除錯工具 gdb
gcc o a.out a.c gdb q a.out break main info register i r objdump d a.out grep a20 main.轉換為機器 objdump m intel d a.out grep a20 main.gdb 設定 1 gdb q 2 se...
gdb除錯工具
檢視幫助一是man 命令,二是進入 www.gnu.org 找到gdb的幫助文件 更詳細 gcc wall g main.c o main,只有這樣才能產生除錯資訊,包括core的除錯資訊。一 常用命令 run r 執行,執行到斷點,重新用r,表示重新開始執行。list l 列出源 l 2,l ma...