用gdb編譯程式時,首先在編譯程式時加-g
gcc -g test.c -o test
執行方法有兩種:
gdb test
或者gdb ;file test
gdb 可以做什麼?
1、gdb 可以以除錯模式啟動程式。
2、gdb 可以 attach 到正在執行的程序
3、gdb 可以分析 core 檔案中的資訊。
這三種情況下,gdb 幾乎可以列印程式中所有變數的資訊,所有當前上下文的資訊。
前兩種情況下,gdb 可以讓程式在任何需要的地方停下來,並且檢視相關資訊,打
印呼叫棧,單步執行跟蹤程式,並且可以人為改變程式的執行流程。
start 執行程式,並在 main 函式處停下來
run 執行程式
set args 設定程式引數
show args 檢視程式引數
bt 當前堆疊
up 上一幀
down 下一幀
frame 顯示第幾幀
info args 顯示當前幀的引數
info locals 顯示當前幀的區域性變數
print 列印變數的值
list 列出**
step 跟蹤到函式內
next 下一步
continue 繼續執行
break 設定斷點
info breakpoints 顯示所有斷點
delete 刪除斷點(按斷點的編號)
用法:delete [breakpoints num] [range…]
clear 刪除斷點(按行)
enable 使能斷點
disable 關閉斷點
condition 設定斷點執行的條件
command 設定執行到斷點處執行的命令
info source 顯示當前檔案資訊
source 載入指令碼
set print 設定列印屬性
whatis 列印變數型別
ptype 列印變數型別
call 呼叫函式
finish 從當前函式返回
jump 跳轉到指定位置處執行
handle 處理訊號
signal 傳送訊號
gdb 官網:
g 和gdb簡單使用
在編譯之前我們需要在系統裡安裝g gcc,它們就是linux下的c c的編譯器。如下 sudo apt get install build essential include using namespace std int main void hello display 在g 中有乙個引數 c可以只...
Linux下gdb的使用
一 編譯檔案生成可執行檔案 如果想用偵錯程式執行乙個可執行檔案,在用gcc編譯時必須加上 g選項。加上 g選項以後,gcc在編譯是會做以下額外的操作 1.建立符號表,符號表包含了程式中使用的變數名稱的列表。2.關閉所有的優化機制,以便程式執行過程中嚴格按照原來的c 進行。二 ulimit c unl...
linux下gdb的除錯使用
1.gdb除錯的物件是可執行檔案,而不是程式的源 因此在使用gcc編譯器時 需加 g選項。告訴gcc編譯器加入除錯資訊。例如 gcc g test.c o test 2.除錯gdb的格式是 例如 gdb test 3.在啟動gdb後,會顯示一段版權說明,如果要不顯示 加入 q即可 例如 gdb q ...