gdb调试说明.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
gdb调试说明

GDB 调试说明 SeaSon from DB-LAB of HIT 安装篇 下面介绍的方法是以在cygwin 中安装gdb 为例说明。 1. 重新运行cygwin 的setup 文件,选择界面中的keep (必须!!!否则会死的很惨的),从 列表中选择gdb 组件,然后选择安装即可。 2. 修改Makefile ,添加调试信息 修改Makefile (注意:修改的是没有任何后缀的文件,不是Makefile.vc 或者Makefile.in ) 在下面位置添加-g CCOPT = -g //这后面可能还有其他参数,保留即可 3. 接着需要重新编译NS2 进入ns-2.2* 目录下面执行 make clean 接着make depend # 执行这个命令过程中如出错,不用管! 然后make 如果上面过程中没有错误,则恭喜你安装成功:) 如果要使用图形界面,则安装过程中需要安装tcltk 库,然后对于2003( 以前的有些版本页可 以) 以后的默认都回安装图形界面调试工具 insight 。后面的说明都是基于命令行界面的,适 用比较稳定、方便。 常用命令 1. 进入gdb 调试状态,在Cygwin 窗口或者Xwin 窗口输入命令 gdb ns,如下图所示: 2.设置断点 命令格式 gdb b file.cc:112 ,下图即在aodv.cc 的第112 行设置一个断点 其中gdb 为命令提示符 b 设置端点命令 file.cc 调试的文件,Ns2 中任何一个C++文件都可以进行调试 “:”行数指示符 112 为行号 当然设置断点的格式还有其他,具体参见手册。 3. 删除断点 命令格式:gdbd b 2 其中d 为delete b 为breakpoints 2 为断点的编号 利用2. 中的方法继续创建断点2 、3 。 利用命令d b 1 即删除第一个断点(Breakpoint 1 at 0x4e0a9d: file aodv/aodv.cc, line 112. ),如 下图所示 4.运行脚本 命令格式:r scrip.tcl 其中r 为命令 scrip.tcl 为脚本 以ns 自带的wireless1.tcl 为例,我们首先在aodv.cc 的recv 函数开始设置端点如下图所示: 运行测试脚本wireless.tcl ,如下图所示: 然后程序在断点位置停止,如下图所示: 5. 显示变量或函数值 命令格式:display var 其中var 可以为变量名或者函数名 在recv ()函数的端点处我们想要查看数据包的源地址,即利用下列命令 display ih-saddr() 结果如下图所示,即数据包源地址为0, 目的地址为2. 6. 删除变量或函数值显示 命令格式:d d 1 其中ddelete d display 1 变量编号 使用命令”d d 1”即删除第一个变量显示。这是在单步调试的时候将不再显示ih-saddr(),否则 如果不删除将显示所有的。 7. 单步执行 命令格式:n 即next 8. 单步跳入 命令格式:s 即step 如下图所示,在执行到下面代码的时候,执行s 命令 则跳转到daddr()函数 9.循环执行 命令格式:c 即continue 10.下面介绍的命令是非常有用的,列出运行栈的内容。 命令格式 bt 主要针对的是如果你遇到segment fault 的时候,你可以用以上命令,确定在那个为止出问题, 以及函数之间的调用关系,后面会具体说明的。 11. 退出调试 命令格式 q 其他的相关命令可以参看手册,不过调试NS2 以上的命令基本上已经够用了。 调试示例 示例一、调试segmentation fault 为了具有普遍性,我特意在aodv.cc 添加了一个segmentation fault 添加方法: 1. 打开aodv.cc,添加头文件 #include

文档评论(0)

75986597 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档