土豆

无线自组网,无线传感器网络
posts - 23, comments - 7, trackbacks - 0, articles - 4
   ::  :: 新随笔 :: 联系 ::  :: 管理

利用KDevelop调试NS-2

Posted on 2010-10-04 00:41 土豆 阅读(687) 评论(0)  编辑 收藏 引用 所属分类: 网络仿真软件

        调试NS-2的方法有很多,常用的有两种,gdb 和 kdevelop,前者是基于文本调试方式, kdevelop是集成开发环境,如VC集成开发环境一样,源代码的编写,编译,调试都可以轻松地完成,接下来介绍一下利用KDevelop调试NS-2的方法

1、进入  ~/ns-allinone-2.30/ns-2.30/ , 修改Makefile, 让编译的结果带有调试信息在CCOPT = -Wall 中添加-g选项,即更改为 CCOPT =  -g  -Wall,保存退出。
2、将Makefile 改为 Makefile.am, 利用它来在KDevelop中自动添加相关文件并生成工程文件.
3、打开KDevelop, 选择菜单中 project | import existing project, 在弹出的对话中,路径定位到~/ns-allinone-2.30/ns-2.30/中,即Makefile.am所在路径。工程名称自己取一个,工程类型选择 Generic c++ Application(Custom Makefile)
4、点击确定,根据Makefile.am 自动生成KDevelop工程文件,并且自动导入所有需要的文件,工程建好后,在KDevelop 中可以看到NS中所定义的c++类,并可以方便地打开所需要编辑的文件进行编程工作。
5、把Makefile.am改回Makefile,在KDevelop内嵌的konsole里定位到~/ns-allinone-2.30/ns-2.30/下,执行make  clean  && make,  此时编译对象已添加了调试信息。


具体调试方法:

(1) 添加组件,或在现有组件上进行改进,建议先在现有组件上改进一点点,熟悉一下调试全过程。编程完后,保存改动过的文件。

(2) 在KDevelop内嵌的konsole里定位到~/ns-allinone-2.30/ns-2.30/下,执行make,此时可能会出现一些语法错误, 根据错误信息进行修改, 保存,重新make, 直至消除所有基本的语法错误。

(3) Console 里运行ns, 进入交互模式(%)

(4) 在KDevelop中选择菜单命令 Debug | Attach to process, 在对话框中选择ns进程并确定,调试器就和NS进程绑定了。

(5) 选择Debug | run, 让ns进程继续运行。

(6) 在konsole里ns 的交互模式下运行所要仿真的脚本 xxx.tcl , 即输入命令Source xxx.tcl, 程序出错并暂停。

(7) 在KDevelop中调用调试功能,类似于VC,可以定位错误, 可以观察变量的值, 可以设置断点,可以单步调试。

        对于明显的segment fault,可以设置断点,单步调试,观察变量值轻易地解决,但对于逻辑错误,则需要按照你设计程序的流程,判断可能出错的地方,多设断点,耐心地进行调试。
Email: 

只有注册用户登录后才能发表评论。