GDB調試

一、配置

修改環境變量(前提電腦中存在\(gdb.exe\)函數

  1. 個人電腦->屬性->環境......在path那一項後面添加你DEV-C++ Bin目錄的路徑(gdb.exe所在目錄),如:
    E:\Program Files\DEV-CPP\Bin (你本身的路徑)
  2. CMD命令行,輸入: set path=%path%;E:\Program Files\DEV-CPP\Bin

若是電腦是32位就要把cpp改爲32位 E:>g++ -g three.cpp -o a -m32工具

調試的時候 gdb32 就行了spa

二、使用\(gdb\)調試程序

\(GDB\)概述
————命令行

GDB是GNU開源組織發佈的一個強大的UNIX下的程序調試工具。或許,各位比較喜歡那種圖形界面方式的,像VC、BCB等IDE的調試,但若是你是在UNIX平臺下作軟件,你會發現GDB這個調試工具備比VC、BCB的圖形化調試器更強大的功能。所謂「寸有所長,尺有所短」就是這個道理。調試

通常來講,GDB主要幫忙你完成下面四個方面的功能:code

一、啓動你的程序,能夠按照你的自定義的要求爲所欲爲的運行程序。
二、可以讓被調試的程序在你所指定的調置的斷點處停住。(斷點能夠是條件表達式)
三、當程序被停住時,能夠檢查此時你的程序中所發生的事。
四、動態的改變你程序的執行環境。

從上面看來,GDB和通常的調試工具沒有什麼兩樣,基本上也是完成這些功能,不過在細節上,你會發現GDB這個調試工具的強大,你們可能比較習慣了圖形化的調試工具,但有時候,命令行的調試工具卻有着圖形化工具所不能完成的功能。讓咱們一一看來three

在編譯時用 -g 選項打開調試選項.編譯

\(gdb\) 基本命令

dir 查看文件目錄
cd 改變工做目錄
pwd 顯示當前工做目錄
Tbreak 設置臨時斷點。它的語法與break相同。區別在於用tbreak設置的斷點執行一次以後當即消失
awatch 設置讀寫監視點。當要監視的表達式被讀或寫時將應用程序掛起。它的語法與watch命令相同
rwatch 設置讀監視點,當監視表達式被讀時將程序掛起,等侍調試。此命令的語法與watch相同class

display:在應用程序每次中止運行時顯示錶達式的值。
info break:顯示當前斷點列表,包括每一個斷點到達的次數。
info files:顯示調試文件的信息。
info func:顯示全部的函數名。
info local:顯示當前函數的全部局部變量的信息。變量

info prog: 顯示調試程序的執行狀態。
print: 顯示錶達式的值。
delete命令: 刪除斷點。指定一個斷點號碼,則刪除指定斷點。

一個調試示例
——————

1 新建一個源文件vi swap.cc

2.生成可執行文件 \(g++ -g swap.cpp(原文件名) -o swap.cc(修改後的文件名)\),注意必須使用-g參數,編譯會加入調試信息,不然沒法調試執行文件

3.啓動調試 gdb swap

3.1 查看源文件 list 1,回車重複上一次指令

3.2設置調試斷點 break 16,在第16行設置斷點,info break查看斷點信息(亦可以使用縮寫i b )

3.3 調試 運行 輸入run 或者r

3.3 單步調試,step 或者 s進入函數內部

3.4查看變量 print b 或者 p b

3.5查看函數堆棧bt,退出函數finish

3.6 繼續運行直到下一個斷點或主函數結束continue或者c

3.7 退出調試 輸入q

相關文章
相關標籤/搜索