linux 下g 和 gdb的使用總結

2021-09-02 12:51:47 字數 1124 閱讀 5637

用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 ...