Linux下gdb使用整理記錄

2022-06-01 20:48:16 字數 1313 閱讀 3992

1.建立cpp檔案:vim sourcefile.cpp

2.生成可執行檔案:g++ -g sourcefile.cpp -o exename

------加上-g引數,才能輸出除錯資訊; -o:指定生成的可執行檔名;-c:指定目標檔名

3.啟動除錯:輸入gdb進入gdb環境

4.輸入 file exename   (告訴gdb要除錯了)

5.輸入 l (list)檢視**,回車重複上一條命令

-----------------------list 的詳細使用-----------------------------

----list  linenum  :顯示linenum周圍幾行**,我line 5 給我顯示了1-10行**

----list function   :顯示函式function的實現**

----list                :顯示當前行後面的**

----list -             :顯示當前行前邊的**

----set listsize count :預設顯示10行,可通過這個命令來更改每次顯示的行數

----show listsize       :  檢視當前listsize的設定。

----list  first, last     :顯示從first行到last行之間的源**.

----list  , last           :從當前行到last

----list +                 : 當前行以後的**

一般來說在list後面可以跟以下這們的引數:

行號。<+offset> 當前行號的正偏移量。

<-offset> 當前行號的負偏移量。

哪個檔案的哪一行。

函式名。

哪個檔案中的哪個函式。

<*address> 程式執行時的語句在記憶體中的位址。

6.斷點設定:b main   在main函式入口加乙個斷點

-------break  5  :在第5行設定斷點; i b  (info break) 檢視斷點資訊  

7.輸入 r (run)開始執行**到斷點處

8.輸入 s  (step)單步進入函式

9.可以輸入 n:單步除錯;輸入print var (縮寫:p var)可以檢視變數bar的值

------檢視堆疊bt,  down和up可乙個乙個列印堆疊資訊。bt直接列印全部堆疊資訊。

10.除錯結束,輸入c (continue) 執行到結束

-----或者 q  (quit)退出

問題:如果**錯了,不能生成可執行檔案該如何??

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

linux下如何使用gdb除錯

gdb是linux下非常好用的乙個除錯工具,雖然它是命令列模式的除錯工具,但是它的功能強大到你無法想象,這裡簡單介紹下gdb下常用的命令。首先編譯生成可執行檔案 這裡的test.c是乙個簡單的求前n項和的程式 gcc g test.c o test g選項告訴gcc在編譯程式時加入除錯資訊 接下來可...