一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

linux下gdb安裝與使用簡介

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-08-16 09:03 ? 次閱讀

linux下 gdb安裝與使用簡介

gdb簡介
GDB,又稱GNU調(diào)試器,是用來幫助調(diào)試我們程序的工具。gdb可以設(shè)置斷點(diǎn)、查看變量、堆??臻g的值、設(shè)置執(zhí)行條件的值等。

一般來說,GDB主要幫助你完成下面四個(gè)方面的功能:

1、啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。

2、可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處停住。(斷點(diǎn)可以是條件表達(dá)式)

3、當(dāng)程序被停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。

4、你可以改變你的程序,將一個(gè)BUG產(chǎn)生的影響修正從而測試其他BUG。

red hat6.3下安裝gdb調(diào)試工具

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70

拷貝gdb軟件包到用戶目錄下,切換到用戶目錄下,安裝gdb工具。

[xsw@xsw Packages]$ cp ./gdb-7.2-56.el6.i686.rpm  ~
[xsw@xsw Packages]$ cd ~
[xsw@xsw ~]$ sudo rpm -ivh gdb-7.2-56.el6.i686.rpm 
poYBAGL6P5OALFkRAABVbpCZcKQ793.png

Ubuntu下安裝gdb

[wbyq@wbyq ~]$ sudo apt-get install gdb

gdb工具常用命令

參數(shù) 功能
r run, 直接調(diào)到斷點(diǎn)處,沒有設(shè)置斷點(diǎn)的話直接運(yùn)行程序
b func 設(shè)置一個(gè)斷點(diǎn)breakpoint在函數(shù)”func”的最開始
b N 在當(dāng)前函數(shù)的第N行設(shè)置斷點(diǎn)
d N 刪除第N行的斷點(diǎn)
info b 顯示所有斷點(diǎn)
c 繼續(xù)運(yùn)行到下一個(gè)斷點(diǎn)或程序結(jié)束
f 運(yùn)行到當(dāng)前程序結(jié)束
s 單步調(diào)試,進(jìn)入函數(shù)
s N 執(zhí)行接下來的N行程序
n 單步調(diào)試,不進(jìn)入函數(shù)
p data 輸出變量data的值
bt 查看調(diào)用的堆棧
l 一次列出10行源碼(從mian.c開始)
l func 列出函數(shù)func的10行源碼
condition 設(shè)置條件斷點(diǎn),condition 1 i=5,設(shè)置斷點(diǎn)1的條件斷點(diǎn)為i=5
q 退出gdb

示例

#include 
int main()
{
	int a;
	int *p=&a;
	printf("請(qǐng)輸入val:\n");
	scanf("%d",&a);
	int i=0;
	for(i=0;i<5;i++)
	{
		*p+=i;	
	}
	printf("a=%d\n",*p);	
}

調(diào)試步驟
1.編譯程序,使用gdb調(diào)試時(shí)需加上-g,進(jìn)入調(diào)試模式。

[xsw@xsw cc]$ gcc main.c -g
[xsw@xsw cc]$ gdb ./a.out
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-56.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /home/xsw/xsw_work/cc/a.out...done.
(gdb) 

2.列出源碼

(gdb) l
1	#include 
2	int main()
3	{
4		int a;
5		int *p=&a;
6		printf("請(qǐng)輸入val:\n");
7		scanf("%d",&a);
8		int i=0;
9		for(i=0;i<5;i++)
10		{
(gdb)

3.設(shè)置斷點(diǎn),開始運(yùn)行

(gdb) b 4
Breakpoint 1 at 0x804844d: file main.c, line 4.
(gdb) r
Starting program: /home/xsw/xsw_work/cc/a.out 

Breakpoint 1, main () at main.c:5
5		int *p=&a;
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6.i686
(gdb) 

4.單步執(zhí)行

(gdb) s
6		printf("請(qǐng)輸入val:\n");
(gdb) s
請(qǐng)輸入val:
7		scanf("%d",&a);
(gdb) s
5
8		int i=0;

5.查看變量值

(gdb) p a
$1 = 5
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11420

    瀏覽量

    212322
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    309

    瀏覽量

    24103
  • gdb
    gdb
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    13490
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用GDB調(diào)試Linux應(yīng)用程序

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 `hellowld.c` 為例介紹 GDB 的調(diào)試入門。
    發(fā)表于 06-27 15:48 ?550次閱讀

    linuxGDB教程

    linuxGDB教程
    發(fā)表于 08-20 13:39

    嵌入式arm linux環(huán)境中gdb+gdbserver的安裝

    $ make(4)安裝 $ make install編譯結(jié)果在/usr/local/arm/3.3.2/bin目錄下,arm-linux-gdb既是GDB工具。三、編譯
    發(fā)表于 11-21 11:16

    linux 3 - gdb安裝和使用介紹

    .iso的安裝包里找到和gdb相關(guān)的rpm包 2.我們可以看到以上的三個(gè)包 接下來就是將這三個(gè)包掛載到linux 系統(tǒng), 當(dāng)然你也可以使用一些工具如loadCRT等,實(shí)現(xiàn)wi
    發(fā)表于 07-03 13:27

    如何搭建嵌入式LinuxGDB調(diào)試環(huán)境

    文章目錄介紹GDB簡介交叉編譯器的gdb介紹在學(xué)習(xí)單片機(jī)的時(shí)候我們可以通過集成式IDE 來進(jìn)行調(diào)試,比如MDK、IAR 等。在嵌入式linux 領(lǐng)域是否也可以進(jìn)行調(diào)試呢?答案肯定是可以
    發(fā)表于 11-05 06:03

    ubuntuGDB調(diào)試GDB簡介

    調(diào)試與圖像編程ubuntuGDB調(diào)試Opencv3.x的基本應(yīng)用ubuntuGDB調(diào)試GDB簡介
    發(fā)表于 12-21 08:20

    LinuxQt的安裝

    LinuxQt的安裝
    發(fā)表于 11-09 17:14 ?5次下載

    Embeded linux之Qt gdb

    Embeded linux之Qt gdb
    發(fā)表于 05-15 13:52 ?1399次閱讀
    Embeded <b class='flag-5'>linux</b>之Qt <b class='flag-5'>gdb</b>

    嵌入式LinuxGDB調(diào)試環(huán)境建立

    的是gdb-5.2.1.tar.gz。假定在debug編譯gdb套件,你前面已經(jīng)設(shè)定了TARGET,PREFIX參數(shù)。其中TARGET是你的目標(biāo)板,我的是arm-linux,PREF
    發(fā)表于 04-02 14:33 ?605次閱讀

    linux編程GDB調(diào)試功能

    GDB是一套字符界面的程序集,可以用它在linux上調(diào)試C和C++程序,它提供了以下的功能:
    的頭像 發(fā)表于 05-05 23:49 ?2414次閱讀
    <b class='flag-5'>linux</b>編程<b class='flag-5'>GDB</b>調(diào)試功能

    實(shí)例演示GDB的使用

    GDB簡介 GDB(GNU Debugger)是一個(gè)強(qiáng)大的命令行調(diào)試工具。一般的,在Windows進(jìn)行開發(fā),很少操控命令行調(diào)試,調(diào)試器大多與編譯器都集成在IDE里了。 當(dāng)然,在Win
    的頭像 發(fā)表于 10-19 09:58 ?2978次閱讀
    實(shí)例演示<b class='flag-5'>GDB</b>的使用

    嵌入式Linux GDB調(diào)試環(huán)境搭建與使用

    這里寫目錄標(biāo)題簡介在Ubuntu簡單體驗(yàn)GDB嵌入式GDB移植GDB 常用命令參考網(wǎng)絡(luò)通信設(shè)置注意事項(xiàng)
    發(fā)表于 11-01 17:59 ?8次下載
    嵌入式<b class='flag-5'>Linux</b> <b class='flag-5'>GDB</b>調(diào)試環(huán)境搭建與使用

    Linux嵌入式 gdb VSCode圖形化調(diào)試教程

    文章目錄介紹GDB簡介交叉編譯器的gdb介紹在學(xué)習(xí)單片機(jī)的時(shí)候我們可以通過集成式IDE 來進(jìn)行調(diào)試,比如MDK、IAR 等。在嵌入式linux 領(lǐng)域是否也可以進(jìn)行調(diào)試呢?答案肯定是可以
    發(fā)表于 11-02 12:21 ?15次下載
    <b class='flag-5'>Linux</b>嵌入式 <b class='flag-5'>gdb</b> VSCode圖形化調(diào)試教程

    嵌入式Linux GDB是什么

    函數(shù)、設(shè)置斷點(diǎn)、查看變量等等,它是 UNIX/LINUX 操作系統(tǒng)強(qiáng)大的程序調(diào)試工具。 gdb 支持多種語言
    的頭像 發(fā)表于 07-27 16:29 ?896次閱讀
    嵌入式<b class='flag-5'>Linux</b> <b class='flag-5'>GDB</b>是什么

    如何使用linuxgdb來調(diào)試python程序

    如何使用linuxgdb來調(diào)試python程序? 在Linux,可以使用GDB(GNU調(diào)試器
    的頭像 發(fā)表于 01-31 10:41 ?3040次閱讀