GDB基本命令

2021-06-19 05:21:12 字數 1363 閱讀 2118

借用阿甘老媽的一句話:「life is like a box of chocolates, you never know what you're going to get.」。

自己做夢也不會想到,多年之後又回到linux的世界中。生活中的事情有太多不確定性,但如果你準備的夠充分,再怎麼變化,也都在你的掌控之中。

今天來把自己多年都沒有完全記下的gdb相關的東西寫在blog裡,隨我到任何國度也可以信手捻來。

gdb是linux世界中最常用的除錯工具,主要功能就是下斷點、單步、看變數的值,以及反彙編功能。其實並不複雜,而且你可以man一下它,就不怕自己忘記命令了。

前提:編譯出可除錯的**,例如:gcc -g test.c -o test

用gdb除錯:gdb test

1.list命令(l)

列出**,可以帶行數或方法名,例如:l 13 或 l main

2.run命令

將程式跑起來

3.break命令

下斷點,例如:

(gdb) break 函式名

(gdb) break 行號

(gdb) break 檔名:行號

(gdb) break 檔名:函式名

(gdb) break +偏移量

(gdb) break -偏移量

(gdb) break *位址

4.單步

next(n)單步執行,不會進入函式內部

step(s)卻可以

until(u)直接退出迴圈體

5.continue(c)

繼續,直到程式結束或下乙個斷點

6.print

程式停住後,列印執行資料

7.watch

觀察某個表示式,一旦有變化,就停止執行並列印出相應的值。

8.examine

檢視記憶體位址中的值

9.jump

引數可以是行號也可以是位址

10.signal

產生乙個訊號量,1~15(參見unix的訊號量)

11.return

強制返回

12.call

強制呼叫某函式

13.info

檢視資訊如:

info registers

info all-registers

info registers 《指定暫存器》

info break

info watchpoints

info signals

info handle

14.disassemble

反彙編,如:

disass main

參考:《linux裝置驅動開發詳解》

《c語言開發手冊》

《debug hacks》

gdb基本命令

為了記憶,就打上來與大家分析,常用的gdb除錯命令 bt 檢視各級函式呼叫及引數 finish 連續執行到當前函式返回為止,然後停下來等待命令 f 選擇棧幀 i 檢視當前棧幀區域性變數的值 l 列出源 list 行號 列出從第幾行開始的源 list 函式名 列出某個函式的源 n 執行下一條語句 p ...

gdb基本命令

可以參考 命令描述backtrace 或bt 檢視各級函式呼叫及引數 finish 連續執行到當前函式返回為止,然後停下來等待命令 frame 或f 幀編號 選擇棧幀 info 或i locals 檢視當前棧幀區域性變數的值 list 或l 列出源 接著上次的位置往下列,每次列10行 list 行號...

GDB 基本命令

什麼是gdb 為什麼需要gdb?沒有gdb行不行?有了gdb有哪些好處?gdb是gnu開源公司開發的乙個強大的程式除錯工具。如果在linux下執行程式,gdb這個工具會有比vc,bcb更加強大的功能。gdb主要作用 就是幫助我們自動完成設定好的操作 啟動程式,可以按照自定義的要求執行程式 可以讓被除...