新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux下C编程基础之:gdb调试器

Linux下C编程基础之:gdb调试器

作者:时间:2013-09-13来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257150.htm

3.4

调试是所有程序员都会面临的问题。如何提高程序员的调试效率,更好、更快地定位程序中的问题从而加快程序开发的进度,是大家都很关注的问题。就如读者熟知的Windows下的一些调试工具,如VisualStudio自带的设置断点、单步跟踪等,都受到了广大用户的赞赏。那么,在下有什么很好的调试工具呢?

是一款GNU开发组织并发布的UNIX/下的程序调试工具。虽然,它没有图形化的友好界面,但是它强大的功能也足以与微软的VisualStudio等工具媲美。下面就请跟随笔者一步步学习

3.4.1gdb使用流程

这里给出了一个短小的程序,由此带领读者熟悉gdb的使用流程。建议读者能够动手实际操作一下。

首先,打开下的编辑器vi或者emacs,编辑如下代码(由于为了更好地熟悉gdb的操作,笔者在此使用vi编辑,希望读者能够参见3.3节中对vi的介绍,并熟练使用vi)。

/*test.c*/

#includestdio.h>

intsum(intm);

intmain()

{

inti,n=0;

sum(50);

for(i=1;i=50;i++)

{

n+=i;

}

printf(Thesumof1-50is%dn,n);

}

intsum(intm)

{

inti,n=0;

for(i=1;i=m;i++)

{

n+=i;

printf(Thesumof1-mis%dn,n);

}

}

在保存退出后首先使用gcc对test.c进行编译,注意一定要加上选项“-g”,这样编译出的可执行代码中才包含调试信息,否则之后gdb无法载入该可执行文件。

[root@localhostgdb]#gcc-gtest.c-otest

虽然这段程序没有错误,但调试完全正确的程序可以更加了解gdb的使用流程。接下来就启动gdb进行调试。注意,gdb进行调试的是可执行文件,而不是如“.c”的源代码,因此,需要先通过gcc编译生成可执行文件才能用gdb进行调试。

[root@localhostgdb]#gdbtest

GNUgdbRedHatLinux(6.3.0.0-1.21rh)

Copyright2004FreeSoftwareFoundation,Inc.

GDBisfreesoftware,coveredbytheGNUGeneralPublicLicense,andyouare

welcometochangeitand/ordistributecopiesofitundercertainconditions.

Typeshowcopyingtoseetheconditions.

ThereisabsolutelynowarrantyforGDB.Typeshowwarrantyfordetails.

ThisGDBwasconfiguredasi386-redhat-linux-gnu...Usinghostlibthread_dblibrary/lib/libthread_db.so.1.

(gdb)

可以看出,在gdb的启动画面中指出了gdb的版本号、使用的库文件等信息,接下来就进入了由“(gdb)”开头的命令行界面了。

(1)查看文件。

在gdb中键入“l”(list)就可以查看所载入的文件,如下所示。

注意

在gdb的命令中都可使用缩略形式的命令,如“l”代表“list”,“b”代表“breakpoint”,“p”代表“print”等,读者也可使用“help”命令查看帮助信息。

(gdb)l

1#includestdio.h>

2intsum(intm);

3intmain()

4{

5inti,n=0;

6sum(50);

7for(i=1;i=50;i++)

8{

9 n+=i;

10}

(gdb)l

11printf(Thesumof1~50is%dn,n);

12

13}

14intsum(intm)

15{

16inti,n=0;

17for(i=1;i=m;i++)

18{

19n+=i;

20}

21printf(Thesumof1~mis=%dn,n);

20}

可以看出,gdb列出的源代码中明确地给出了对应的行号,这样就可以大大地方便代码的定位。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭