系统:Fedora20_x64
NS版本:ns-2.35
问题:ns默认安装不支持调试, 网上介绍的方法主要介绍了ns部分如何调试, 在代码定位过程中tcl模块中代码无法定位。
解决方法:
如何使用Eclipse CDT 调试NS?
1. 关于ns安装可以参见《VM下Fedora14与NS2安装过程》
2. 关于eclipse中建立ns项目可以参见《用eclipse调试ns2》中的1),3)两部分。
3. 如何使ns2支持调试, 方法如下:
1)将ns-allinone中不需要的模块删除(我仅留下了tk,tcl,otcl,tclcl,ns五个模块)
2)修改install脚本,将与已删除模块相关的语句删除
3)修改install脚本,将所有的make distclean(这会清除我们对MakeFile.in文件的修改)修改为make clean
4)首先进行一次ns的安装, 安装过程中会生成makefile文件
5)然后进入剩余每个模块的目录下,打开MakeFile.in文件,修改其中的CFLAG = XXX语句,在语句的末端添加 -g -O0
其中-g 使编译后的文件支持调试,-O0则使编译器不进行优化,否则在调试中可能存在执行顺序与代码不匹配的情况!
6)删除nsallinone/bin下所有文件,执行./install文件即可完成安装。7)设置断点即可进行调试, 解决了tcl中代码无法调试的问题。
如何使用Qt Creator 调试NS?
1. 安装Qt Creator,在new project中选择import project,选中ns-allinone目录
2. 修改项目project选项中的配置,其中build览添加用户自定义执行过程:
命令:bash
参数:install
3. 修改run选项夹中的内容:
将执行文件设置为%{buildDir}/bin/ns,工作目录修改为脚本目录,参数设置为脚本
执行调试即可!