一文看懂gdb簡單除錯

2021-08-29 02:25:29 字數 2360 閱讀 3809

gdb視覺化除錯:gdb -tui -q 可執行檔案的名字

gdb編譯程式

使用gcc編譯程式生成可執行檔案的命令中,加上-g引數

啟動gdb除錯程式

gdb 可執行程式

退出gdb除錯

在gdb中輸入quit(q)

命令列傳參

set args ___ ___ ___

gdb檢視源**:list(l)

[1] listsize顯示設定

預設情況下,顯示list的上下各10行

list showsize #執行l命令,預設顯示幾行

set listsize 20 #設定顯示的行數為20

[2] list(l)的使用

list 檔名:行號

list 檔名:函式名

設定斷點:break(b)

b 檔名:行號

b 檔名:函式名

條件斷點

b 行號 if 變數==var

例:b 17 if i==10 表示:在第17行打斷點,當i==10條件成立時,程式停在斷點處

檢視設定過的斷點info(i) b

刪除斷點:del(d) 斷點編號num

del num1 num2 … numn

del numk1-numk2

將斷點設為[無效]:disable(dis) 斷點編號num

將斷點設為[有效]:enable(ena) 斷點編號num

啟動並執行程式,停在程式的第一行:start

啟動並執行程式,停在斷點break處:run®

檢視變數的值:print§ 變數

檢視變數的型別:ptype 變數

在程式執行的過程中,實時自動地顯示變數的值:dispaly i

取消實時自動地顯示變數的值:

info(i) display

undisplay 編號num

gdb -p

① 根據程序名,獲取程序號碼:pidof --> 程序號

② 開啟gdb除錯:gdb

說明:gdb ,會先殺死該程序,然後重啟程序&進入gdb除錯環境。

打斷點技巧

(1) b :函式名,例: b test.c:main

(2) b :行號,例:b test.c 12

檢視斷點資訊:info b

commands:命令列表 (依賴於斷點)

每次斷點發生時候,想要檢視的變數很多時,如果每個變數都手動print則需要浪費很多時間。斷點命令可以在斷點發生時批量執行gdb命令。

commands的設定步驟

① 打斷點

② commands(開啟commands)

③ > 命令1

④ > 命令2

⑤ > end (結束commands)

(gdb) l

1 #include

23 int main(

)4

10(gdb) b 7 # 打斷點

breakpoint 1 at 0x4004c3: file main.c, line 7.

(gdb) i b # 檢視斷點資訊

num type disp enb address what

1 breakpoint keep y 0x00000000004004c3 in main at main.c:7

(gdb) commands 1 # 開啟commands

type commands for breakpoint(s) 1, one per line.

end with a line saying just "end"

.>p i # commands中的命令列

>end # 結束commands

(gdb) i b # 檢視斷點詳情,多了個p i

num type disp enb address what

1 breakpoint keep y 0x00000000004004c3 in main at main.c:7

p i(gdb)

監視器(某個變數發生變化時,將自動列印,不依賴於斷點

可以監視某個變數,在變數被訪問或者被修改時程式會在當前點進入斷點。

① start 先啟動

② watch

向下走一步,不會進入函式體:next(n)

向下走一步,會進入函式體:step(s)

跳出函式體:finish

從迴圈體直接跳出:until

一文看懂kylin

kylin到底解決了什麼關鍵問題 要徹底的解決掉資料查詢時間隨著資料量的增長而成線性增長的規律 kylin適合哪類資料的處理 通常查詢資料,一般是統計結果,如果是統計結果,必然會按照維度來進行聚合,kylin的工作原理是多維立方體分析,適合需要從多個維度來觀察資料的查詢。維度,看資料的角度,比如地區...

一文看懂xml

先簡單介紹下html xml xpath 1.html 超文字語言,用來展示資料。2.xml 可擴充套件標記語言,用來傳輸資料。僅僅是純文字,標籤可自定義。3.xpath 專門在xml中查詢資訊的語言。xml 文件必須包含根元素。該元素是所有其他元素的父元素。xml 文件中的元素形成了一棵文件樹。這...

GDB簡單除錯方法

1.列檔案清單 列出3到6行 2.run執行程式 利用set args 命令就可以修改傳送給程式的引數,而使用show args 命令就可以檢視其預設引數的列表。3.設定啟動引數使用命令 set args st 1 4.利用print 命令可以檢查各個變數的值。注 print 是gdb的乙個功能很強...