gdb的一点学习资料

gdb的一点学习资料

ID:39550280

大小:83.50 KB

页数:26页

时间:2019-07-06

gdb的一点学习资料_第1页
gdb的一点学习资料_第2页
gdb的一点学习资料_第3页
gdb的一点学习资料_第4页
gdb的一点学习资料_第5页
资源描述:

《gdb的一点学习资料》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工

2、具还是有不如命令行的地方。 用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,

3、可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。 从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。 一个调试示例 —————— 源程序:tst.c 1#include 2 3intfunc(intn) 4{ 5intsum=0,i; 6for(i=0;i<7;i++){8sum+=i; 9} 10returnsum; 11} 12 13 14main(

4、) 15{ 16inti; 17longresult=0; 18for(i=1;i<=100;i++) 19{ 20result+=i; 21} 22 23printf("result[1-100]=%d",result); 24printf("result[1-250]=%d",func(250)); 25} 编译生成执行文件:(Linux下) hchen/test>cc-gtst.c-otst 使用GDB调试: hchen/test>gdbtst<----------启动GDB GNUgdb5.1.1 Copyright2002FreeSo

5、ftwareFoundation,Inc. GDBisfreesoftware,coveredbytheGNUGeneralPublicLicense,andyouare welcometochangeitand/ordistributecopiesofitundercertainconditions. Type"showcopying"toseetheconditions. ThereisabsolutelynowarrantyforGDB.Type"showwarranty"fordetails. ThisGDBwasconfiguredas"i3

6、86-suse-linux"... (gdb)l<--------------------l命令相当于list,从第一行开始例出原码。 1#include 2 3intfunc(intn) 4{ 5intsum=0,i; 6for(i=0;i7{ 8sum+=i; 9} 10returnsum; (gdb)<--------------------直接回车表示,重复上一次命令 11}12 13 14main() 15{ 16inti; 17longresult=0; 18for(i=1;i<=100;i++) 19{ 20result+=i; (gdb

7、)break16<--------------------设置断点,在源程序第16行处。 Breakpoint1at0x8048496:filetst.c,line16. (gdb)breakfunc<--------------------设置断点,在函数func()入口处。 Breakpoint2at0x8048456:filetst.c,line5. (gdb)infobreak<--------------------查看断点信息。 NumTypeDispEnbAddressWhat 1breakpointkeepy0x08048496inma

8、inattst.c:16 2breakpointkeepy0x08048456infuncat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。