GDB使用例子

2021-09-24 14:48:02 字數 1191 閱讀 9123

一般來說

gdb主要除錯的是

c/c++

的程式。要除錯

c/c++

的程式,首先在編譯時,我們必須要把除錯資訊加到可執行檔案中。使用編譯器(

cc/gcc/g++

)的-g

引數可以做到這一點。如:

> gcc -g hello.c -o hello

> g++ -g hello.cpp -o hello

如果沒有

-g,你將看不見程式的函式名、變數名,所代替的全是執行時的記憶體位址。當你用

-g把除錯資訊加入之後,並成功編譯目標**以後,讓我們來看看如何用

gdb來除錯他。

啟動gdb的方法有以下幾種: 1

、gdb

program

也就是你的執行檔案,一般在當前目錄下。 2

、gdb core

用gdb

同時除錯乙個執行程式和

core

檔案,core

是程式非法執行後

core dump

後產生的檔案。 3

、gdb

如果你的程式是乙個服務程式,那麼你可以指定這個服務程式執行時的程序id。

gdb會自動

attach

上去,並除錯他。

program

應該在path

環境變數中搜尋得到。

示例一:在進入函式

func

時,設定乙個斷點。可以敲入

break func

,或是直接就是

b func

(gdb) b func

breakpoint 1 at 0x8048458: file hello.c, line 10.

示例二:敲入

b按兩次

tab鍵,你會看到所有

b打頭的命令:

(gdb) b

backtrace  break      bt

示例三:

l(l命令相當於

list

,從第一行開始例出原碼)

示例四:

r(執行程式

) n(

下一步) c(continuing)

示例五:

p i

檢視變數i的值

示例六:

bt 檢視函式堆疊

GDB除錯例子

2010 06 15 除錯乙個在正執行的c程式 工作中會遇到需要debug乙個執行中的c程序,debug步驟 1.ps ef grep 找到程序的pid 2.gdb p 用gdb關聯 這個c程序 3.dir 關聯源程式的目錄位置 4.b c 行號 或者 b 方法名 設定斷點 5.c 完成程式執行 6...

gdb中文亂碼 GDB 使用gdb檢視記憶體

一 使用gdb檢視記憶體 命令 x nfu x 是 examine 的縮寫 n表示要顯示的記憶體單元的個數 f表示顯示方式 x 按十六進製制格式顯示變數 d 按十進位制格式顯示變數 u 按十進位制格式顯示無符號整型 o 按八進位制格式顯示變數 t 按二進位制格式顯示變數 a 按十六進製制格式顯示變數...

linux c 小程式 gdb除錯命令 例子

1 除錯函式的一系列命令,源 如下main.c include int add range int low,int high int main void 結果為55 5015 與正確結果不同,除錯如下 1步驟 gcc g main.c o main linux下c原始檔編譯 含有源 可以除錯 gdb...