国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux中的C/C++語言調(diào)試工具 GDB

這篇具有很好參考價值的文章主要介紹了Linux中的C/C++語言調(diào)試工具 GDB。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Linux中的C/C++語言調(diào)試工具 GDB

GDB(GNU Debugger)是一個功能強大的調(diào)試器,用于調(diào)試和分析程序的執(zhí)行過程。它是GNU項目的一部分,可以在多個操作系統(tǒng)上使用,包括Linux、Unix和Windows。

GDB主要用于調(diào)試編譯后的可執(zhí)行文件,它可以幫助程序開發(fā)人員識別和修復代碼中的錯誤、追蹤程序的執(zhí)行流程、觀察和修改程序的狀態(tài),以及分析程序崩潰時的堆棧跟蹤信息。

Linux下最常用的調(diào)試工具就是GDB。

1.安裝GDB

sudo apt-get install gdb

2.使用GDB

2.1啟動與退出

啟動

$gdb

使用quit命令(簡寫成q)退出

$(gdb)q

2.2裝入調(diào)試程序

首先寫一個C語言程序

/*a.c*/
#include<stdio.h>
void show(int i){
	printf("this is %d\n",i);
}
int main(){
	int i=0;
	int j=9;
	for(i=1;i<=j;i++)
		show(i);
	return 0;
}

對上面的代碼進行編譯連接

gcc -g a.c -o a

在調(diào)試程序之前必須先得在gdb中裝入調(diào)試程序,根據(jù)裝入調(diào)試程序的時間分為兩種:

  • 在啟動gdb時,進行裝入:

    $gdb a
    
  • 在啟動gdb之后,進行裝入:

    (gdb) file a
    

Linux中的C/C++語言調(diào)試工具 GDB

2.3列出源代碼

程序轉(zhuǎn)入gdb之后,可以使用list命令(可以簡寫成l)將源碼列出。

(gdb) list

Linux中的C/C++語言調(diào)試工具 GDB

默認情況下只會顯示前10行的代碼,如果程序代碼量過多,可以繼續(xù)使用list命令顯示后面的代碼。

2.4執(zhí)行程序

執(zhí)行命令時run(可以簡寫成r)。可以在run命令之后可以加入執(zhí)行參數(shù)來執(zhí)行相關的操作。

(gdb) run

Linux中的C/C++語言調(diào)試工具 GDB

目前沒有添加斷點,所以程序直接輸出了運行結(jié)果。若添加了斷點,則會在斷點的位置進行停止。

3.設置與管理斷點

3.1 設置斷點

設置斷點的命令是 break(可以簡寫成b)。一般設置形式:

break 行號

設置完斷點以后,利用run命令執(zhí)行程序。

Linux中的C/C++語言調(diào)試工具 GDB

  • 利用break設置斷點時,也可以添加條件進行判斷

    break 行號 if語句
    

當程序在斷點處停下來了,可以使用continue命令(可以簡寫成c),繼續(xù)執(zhí)行程序。

(gdb) continue

Linux中的C/C++語言調(diào)試工具 GDB

3.2查看斷點信息

加入斷點之后,可以利用 info break命令進行查看設置的斷點信息??梢钥吹皆跀帱c的編號、類型、地址等信息。

(gdb) info break

Linux中的C/C++語言調(diào)試工具 GDB

3.3刪除斷點信息

利用delete命令(可以簡寫成d)進行刪除之前設置的斷點。

delete 斷點編號

刪除指定范圍內(nèi)的斷點也可以使用

delete 起始斷點編號-終點斷點編號

也可以刪除指定行上的斷點,利用clear命令進行刪除

(gdb) clear 行號

Linux中的C/C++語言調(diào)試工具 GDB

3.4設置觀察點

觀察點也稱數(shù)據(jù)斷點,顧名思義就是用來觀察某個變量或者表達式的變化,如果有變化,則暫停程序的運行,這在調(diào)試程序中時非常常見的。設置觀察點的命令為 watch,后面跟變量過著表達式。·

(gdb) watch 變量或表達式

可以利用info watchpoints命令來查看當前設置的所有觀察點。

可以使用delete命令來刪除指定的觀察點。

Linux中的C/C++語言調(diào)試工具 GDB

4.顯示數(shù)據(jù)和修改變量值

4.1顯示變量或表達式的值

在調(diào)試程序的過程中,查看變量或則表達式的值是一個有效的方法。

在GDB中,可以用print命令(可以簡寫成p)來顯示。

(gdb) print 變量或表達式

Linux中的C/C++語言調(diào)試工具 GDB

4.2 自動顯示變量或表達式的值

若我們需要持續(xù)性觀察一個變量或表達式的值,可以使用display命令,設置為自動顯示。

(gdb) dispaly 變量

Linux中的C/C++語言調(diào)試工具 GDB

4.3修改變量的值

在調(diào)試程序中,我們可以通過修改某一個變量的值來驗證代碼的準確性。

set命令

(gdb) set 變量=值

5.執(zhí)行命令和調(diào)用函數(shù)

為了方便后面的演示,現(xiàn)在新建一個b.c代碼文件。

/*b.c*/
#include<stdio.h>
void show(){
	printf("1+2+3= ");
}
int main(){
	int i=0;
	int sum=0;
	for(i;i<=3;i++)
		sum+=i;
	show();
	printf("%d\n",sum);
	return 0;
}

編譯成可執(zhí)行文件,并載入gdb中,方便后續(xù)演示。

$gcc -g b.c -o b
$gdb b

5.1單步執(zhí)行

單步執(zhí)行就是一步一步跟蹤程序的執(zhí)行的流程,根據(jù)變量的值,找到錯誤的原因。這是在程序調(diào)用中的常見的操作。

GDB中可以使用step(可以簡寫成s)或next(可以簡寫成n)來單步執(zhí)行程序。

step命令可以跟蹤進入函數(shù)內(nèi)部;next命令會將函數(shù)看作一條語句,不進入函數(shù)內(nèi)部。

Linux中的C/C++語言調(diào)試工具 GDBLinux中的C/C++語言調(diào)試工具 GDB

5.2退出被調(diào)用的函數(shù)

當利用step命令進入函數(shù)內(nèi)部時,如果需要忽略剩下的函數(shù)語句,并繼續(xù)向下執(zhí)行,可以執(zhí)行return命令跳出函數(shù),

return命令后面可以跟變量或表達式。

6.其他

6.1幫助手冊

GDB中設置了幫助手冊,不清楚的命令可以利用help來獲取幫助。

Linux中的C/C++語言調(diào)試工具 GDB

6.2 查看堆棧信息

利用backtrack(可以簡寫成bt)和frame(可以簡寫f)命令查看棧的信息。

Linux中的C/C++語言調(diào)試工具 GDB

6.3 查看程序的匯編代碼

可以利用disassemble命令來顯示程序的匯編代碼。

void show(){
	printf("1+2+3= ");
}

Linux中的C/C++語言調(diào)試工具 GDB文章來源地址http://www.zghlxwxcb.cn/news/detail-477822.html

到了這里,關于Linux中的C/C++語言調(diào)試工具 GDB的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 匯編語言調(diào)試工具:DosBox及debug安裝配置使用教程

    匯編語言調(diào)試工具:DosBox及debug安裝配置使用教程

    ? ? ? ? 學習匯編語言時,需要進入dos模式并使用debug工具調(diào)試。但是64位win10系統(tǒng)沒有自帶這些工具。因此,需要額外安裝DosBox和debug.exe兩個軟件。本文介紹如何下載、安裝、配置這兩個工具軟件。? 簡介 DOSBox 是一個 DOS?模擬程序,由于它采用的是 SDL 庫,所以可以很方便的

    2024年02月11日
    瀏覽(32)
  • RK3568平臺開發(fā)系列講解(調(diào)試篇)Linux 性能調(diào)試工具匯總

    RK3568平臺開發(fā)系列講解(調(diào)試篇)Linux 性能調(diào)試工具匯總

    ??返回專欄總目錄 沉淀、分享、成長,讓自己和他人都能有所收獲!?? ??本篇將匯總介紹 Linux 調(diào)試優(yōu)化的工具。 我們來看 Linux 的性能工具。首先還是要推薦下面這張圖,也就是 Brendan Gregg 整理的性能工具譜圖。我在專欄中多次提到過,你肯定也已經(jīng)參考過。 這張圖從

    2023年04月15日
    瀏覽(89)
  • Linux的調(diào)試工具 - gdb(超詳細)

    Linux的調(diào)試工具 - gdb(超詳細)

    程序的發(fā)布方式有兩種,debug模式和release模式 Linux gcc/g++出來的二進制程序,默認是release模式 要使用gdb調(diào)試,必須在源代碼生成二進制程序的時候, 加上 -g 選項,發(fā)布成debug模式 注: 如果沒有斷點,程序?qū)⑦\行到底 注: 單條執(zhí)行需要在調(diào)試啟動的情況下進行,需要先打斷點

    2024年02月07日
    瀏覽(20)
  • 【linux】git和gdb調(diào)試工具

    【linux】git和gdb調(diào)試工具

    這兩個步驟用于識別提交代碼的身份,一個你的名字,一個你的郵箱 開啟本地倉庫 克隆本地倉庫成功 我們將這個倉庫拷到了111目錄底下. 我們發(fā)現(xiàn)少了一個.gitignore,因為.gitignore是隱藏文件,所以使用ls -la查看 用于查看提交狀態(tài) 上面可以看到提交人的信息,以及時間,以及提

    2024年02月22日
    瀏覽(21)
  • 在linux中的GDB調(diào)試一些用法

    -g: 選項的作用是在可執(zhí)行文件中加入源代碼的信息 -Wall:盡量不影響程序行為的情況下選項打開所有warning program:為程序名 help:使用幫助 gdb:啟動程序 quit:退出調(diào)試 set args num1 num2 …:設置程序中需要的參數(shù)(就是cin需要接收的值) show args:展示參數(shù) list或者l :從默認位

    2024年02月05日
    瀏覽(26)
  • linux下can調(diào)試工具canutils編譯安裝

    linux下can調(diào)試工具canutils編譯安裝

    命令安裝只需要 sudo apt-get install canutils 一、下載源碼 下載canutils和libsocketcan libsocketcan地址:https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2 #0.0.11版本 canutils地址:https://public.pengutronix.de/software/socket-can/canutils/v4.0/canutils-4.0.6.tar.bz2 #4.0.6版本 解壓如下: tar -jxvf l

    2024年01月23日
    瀏覽(17)
  • Linux開發(fā)工具之調(diào)試器gdb

    程序的發(fā)布方式有兩種,debug模式和release模式 Linux gcc/g++出來的二進制程序,默認是release模式 要使用gdb調(diào)試,必須在源代碼生成二進制程序的時候, 加上 -g 選項 ? 所以一份代碼若要被調(diào)試必須是debug模式,但是在linux下我們編譯代碼的時候默認為release模式,要想讓我們的代碼

    2024年02月07日
    瀏覽(22)
  • 【Linux操作系統(tǒng)】深入了解系統(tǒng)編程gdb調(diào)試工具

    【Linux操作系統(tǒng)】深入了解系統(tǒng)編程gdb調(diào)試工具

    在軟件開發(fā)過程中,調(diào)試是一個非常重要的步驟。無論是在開發(fā)新的軟件還是維護現(xiàn)有的代碼,調(diào)試都是解決問題的關鍵。對于Linux開發(fā)者來說,GDB是一個非常有用的調(diào)試工具。在本文中,我們將探討Linux中使用GDB進行調(diào)試的方法和技巧。 GDB是GNU調(diào)試器的縮寫,是一個功能強

    2024年02月14日
    瀏覽(24)
  • Linux工具【2】(調(diào)試器gdb、項目自動化構(gòu)建工具make/Makefile)

    Linux工具【2】(調(diào)試器gdb、項目自動化構(gòu)建工具make/Makefile)

    在上一篇文章中介紹了Linux中的編輯器vim與編譯器gcc與g++: 戳我看vim與gcc詳解哦 在本篇文章中將繼續(xù)來介紹Linux中的工具: 調(diào)試器gdb與項目自動化構(gòu)建工具make/Makefile 在Windows環(huán)境中,我們使用vs時,常常會逐過程與逐語句地調(diào)試代碼以更高效地尋找到錯誤的位置。在Linux中也

    2024年02月12日
    瀏覽(24)
  • [linux開發(fā)工具]小程序--進度條、調(diào)試器 - gdb

    [linux開發(fā)工具]小程序--進度條、調(diào)試器 - gdb

    ?? 作者簡介 :RO-BERRY ?? 學習方向:致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫等等一系列知識 ?? 日后方向 : 偏向于CPP開發(fā)以及大數(shù)據(jù)方向,歡迎各位關注,謝謝各位的支持 第一種情況 執(zhí)行結(jié)果如下: 可以看到程序先執(zhí)行printf再執(zhí)行sleep 第二種情況 執(zhí)行結(jié)果如下: 在這里

    2024年02月22日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包