- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2022年国家公务员考试行测试题(有答案)(地市级).pdf VIP
- CISA考试练习习题库(2025年第1部分).pdf VIP
- 基于核心素养的小学语文作业设计策略分析.docx VIP
- T_CGSS 014—2020_老年人跌倒风险综合评估规范.pdf VIP
- 选区激光熔化技术下成形件表面质量及残余应力预测方法.pdf VIP
- 机电设备安装应急处理预案.docx VIP
- 2025入党积极分子发展对象考试题库(含答案).docx VIP
- 个人简历——【标准模板】.doc VIP
- [富士康 索尼设备校正]SI-F209 Operation Manual (中文版).pdf
- 小学语文作业设计的有效策略.doc VIP
文档评论(0)