Ubuntu下C语言Debug工具GDB【1】安装和使用
1.什么是GDB
ubuntu上可以用來調試C,C++程序的debug工具。
2 如何安裝GDB?
保證你的電腦上已經裝有gcc、g++、cmake。
1. 下載最新的gdbwget https://ftp.gnu.org/gnu/gdb/gdb-10.1.tar.gz 2. 解壓包tar -xzvf gdb-10.1.tar.gz 3. 生成makefilecd gdb-10.1/ mkdir build cd build ../configure 4. 編譯安裝make編譯時會出現tex相關錯誤,所以先安裝 textinfosudo apt-get install texinfo make -j8 sudo make install2.GDB功能及其對應命令
GDB功能強大,調試命令也有很多。但是對常見命令并不多,如下表所示:
| 命令 | 描述 | 參考示例 |
| gdb | 進入gdb調試 | gdb |
| help | 顯示幫助信息 | help |
| quit(q) | 退出gdb調試環境 | |
| file?? | 加載被調試的可執行程序文件(文件是經過編譯之后形成的可執行文件,在編譯時,應該加上-g?選項,比如?gcc?-o?test_gdb?test_dgb.c?-g) | file?test_gdb |
| list??行號 | 列出第幾行開始的源代碼 | |
| backtrace(bt) | 查看各級函數調用及參數 | |
| finish | 連續運行到當前函數返回為止,然后停下來等待命令 | |
| frame(f) ?幀編號 | 選擇棧幀 | |
| info(i) ?locals | 查看當前棧幀局部變量的值 | |
| list(l) | 列出源代碼,接著上次的位置往下列,每次列十行 | |
| list??函數名 | 列出某個函數的源代碼 | |
| next(n) | 執行下一行語句 | |
| print(p) | 打印表達式的值,通過表達式的值可以修改變量的值或者調用函數 | |
| run | 運行調試的程序(如果程序中沒有設置斷點,則程序會一直運行到結束或者出現異常結束,如果設置斷點,則會在斷點處停止) | r(run) |
| delete breakpoints?斷點號 | 刪掉此號的斷點 | |
| clear | 清空所有的斷點信息 | clear |
| continue(c) | 從當前位置開始連續運行程序,直到下一個斷點或者程序結束 | c(continue) |
| set ?var | 修改變量的值 | |
| start | 開始執行程序,停在main函數第一行語句前面等待命令 | |
| step(s) | 執行下一行語句,如果有函數則進入到函數中 | |
| display??變量名 | 跟蹤查看某個變量,每次停下來都顯示它的值 | |
| disable? breakpoints?斷點號 | 禁用此斷點 | |
| enable??斷點號 | 啟用此斷點 | |
| info(i)? breakpoints | 查看當前設置了哪些斷點 | |
| undisplay ?跟蹤顯示行號 | 取消跟蹤顯示 | |
| watch | 設置觀察點 | |
| info(i)?? watchpoints | 查看當前設置了哪些觀察點 | |
| x | 從某個位置開始打印存儲單元的內容,全部當成字節來看,而不區分哪個字節屬于哪個變量 |
3.舉例說明
有程序mytest.cpp代碼如下
#include <stdio.h> int func(int n) {int sum=0,i;for(i=0; i<n; i++){sum+=i;}return sum;}int main() {int i;int result = 0;for(i=1; i<=100; i++){result += i;}printf("result[1-100] = %d /n", result );printf("result[1-250] = %d /n", func(250) ); }3.1 編譯的要點
對源程序進行編譯,加上-g選項,使其可以進行調試。其結果是生成可執行文件test_gdb,并且可以對其進行gdb調試(對于該命令的詳細解釋,可以查看gcc命令)
gcc?? -o?? test_gdb?? mytest.cpp?? -g
3.2 如何進入gdb環境
進入gdb調試:
gdb
如上圖最后一行所示,代表進入gdb調試,等待用戶命令輸入。
3 .3 加載被跟蹤文件
加載文件
file? test_gdb
顯示加載成功。
3.4? 顯示程序段
list
3.5 如果在設置斷點之前,輸入r
run
程序正常運行,并且停留在第一條執行語句上,等待繼續操作。
參考文章:
GDB調試從基礎到精通實例 - azraelly - 博客園
ubuntu-mate下載:
下載地址為:Choose an architecture | Download (ubuntu-mate.org)
總結
以上是生活随笔為你收集整理的Ubuntu下C语言Debug工具GDB【1】安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu20.04下安装Docker
- 下一篇: 索爱麦克风免驱动的语音录入测试