日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu下C语言Debug工具GDB【1】安装和使用

發布時間:2025/3/21 Ubuntu 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 install

2.GDB功能及其對應命令

GDB功能強大,調試命令也有很多。但是對常見命令并不多,如下表所示:

break?

break??if?condition

break?

在某一行設置普通斷點。

(運行到該行即停止)

在某一行設置條件斷點

(運行到改行滿足條件停止)

在某一個函數調用處設置斷點

(運行到函數調用處即停止)

b(break)?24??????? (行號)

b?24?if?index?==?3? (條件)

b?getSum? (函數名)

命令

描述

參考示例

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】安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。