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 + : 當前行以後的**
6.斷點設定:b main 在main函式入口加乙個斷點一般來說在list後面可以跟以下這們的引數:
行號。<+offset> 當前行號的正偏移量。
<-offset> 當前行號的負偏移量。
哪個檔案的哪一行。
函式名。
哪個檔案中的哪個函式。
<*address> 程式執行時的語句在記憶體中的位址。
-------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在編譯程式時加入除錯資訊 接下來可...