gdb除錯:
在linux環境中,gdb是主要的除錯工具,用來除錯c/c++程式。
如果要除錯程式,需要在gcc編譯時加上-g
引數,比如gcc -g -o test test.c
進入gdb除錯:gdb test
退出gdb除錯:quit
gdb常用命令:
命令簡寫
功能run
無開始執行程式(如果沒有斷點,會直接執行完)
list
l檢視源**
break
b設定斷點
continue
c繼續執行,執行程式到下乙個斷點
next
n執行下一行**
step
s單步執行,可以進入到函式中
finish
無執行到當前函式結束
p列印變數的值
until
u執行到指定行
delete
d刪除斷點
info breakpoints
無顯示斷點資訊
info
i顯示資訊
backtrace
bt、where
列印函式棧資訊
info locals
無列印斷點所在函式的所有區域性變數的值
查詢用法:help command
,比如help next
,就可以看到next的命令幫助。
list:
list 行號,顯示某一行附近的**
list 函式,顯示某個函式附近的**
list 檔名:函式,顯示某檔案的某個函式附近的**
break:
(斷點處未被執行)
break 行號,將斷點設定到該行
break 函式,將斷點設定到該函式的開始處
break 檔名:函式,將斷點設定到某檔案的某個函式處
info breakpoints:
顯示斷點資訊
num:代表斷點的編號
type:代表是斷點
disp:代表該斷點被執行後,應該keep(保留),del(刪除),dis(關閉)
enb:代表該斷點是啟用(y)還是未啟用(n)
address:代表該斷點的虛擬記憶體位址
what:代表該斷點在原始檔的資訊
delete:
delete num,刪除指定斷點,輸入的num不是行號,而是斷點的編號,編號由info breakpoints
獲得。
delete,刪除所有斷點
disable:
disable num,關閉指定斷點,編號由info breakpoints
獲得
disable,關閉所有斷點
enable:
enable num,啟用指定斷點
enable,啟用所有斷點
enable once num,斷點執行一次後關閉
enable delete num,斷點執行一次後刪除
next:
next n,執行n步(不會進入函式中)
step:
step n,執行n步(會進到函式中)
GDB常見使用命令
gdb gnu symbolic debugger 簡單地說就是乙個除錯工具。它是乙個受通用公共許可證即gpl保護的自由軟體。像所有的偵錯程式一樣,gdb可以讓你除錯乙個程式,包括讓程式在你希望的地方停下,此時你可以檢視變數 暫存器 記憶體及堆疊。更進一步你可以修改變數及記憶體值。gdb是乙個功能很...
gdb基本使用方法和常用命令
一 符號表說明 使用gdb除錯的前提是要有符號表。如果程式是release版本,符號表不全,則使用gdb除錯時,不能單步除錯,成員變數等資訊不可查 如何生成符號表 編譯 時加上 g引數,則編譯的程式中會帶有當前程式的符號表。如 gcc o main main.c,則可對main程式進行單步除錯 二 ...
gdbstub中的基本命令 gdb常用命令
索引 已審核dir path 呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb...