[转]NS2仿真过程中解决动画仿真节点未定义问题
2011-04-22 14:22
399 查看
原文地址:http://blog.myspace.cn/e/400266384.htm
其实,这个问题已经出现很长时间了,但是直到昨天问题才得到解决。
问题描述
用NS2运行无线仿真,然后运行动画程序nam,但是运行过程中出现“node x is not defined"这样的问题。开始还以为是不是nam出现了问题,经过几步找错和查错,调试终于找到了问题的根源。
问题解决步骤
首先运行ns xxx.tcl,得到仿真的nam动画数据文件,我们假设为:test.nam。
然后用nam运行该数据文件,运行过程中出现节点未定义的错误,怀疑是nam程序的问题,决定对nam进行调试。
进入到nam的安装文件夹,修改Makefile,在选项中添加调试选项。CCOPT = -g -Wall
重新编译生成nam:make clean; make; make install
开始使用GDB进行调试:gdb nam
进入GDB之后输入命令:set args test.nam
然后在文件netmodel.cc的 NetModel::lookupNode()函数处设置断点:b netmodel.cc:1570。
然后开始运行程序,输入r然后回车;
运行到断点处,程序停止运行。此时就可以查找出错的原因了,输入命令p nodes_(存放节点链表的头指针),发现其值为空(= 0x0);于是断定问题的根源是在nam文件中存放节点的链表是空的,进而推知,问题处在test.nam文件而不是nam可执行文件。
打开nam文件查看,问题果然在此,因为在nam数据文件中并没有发现节点定义的语句(以n开头的语句)。
开始查找问题出现的原因,分析了一个成功运行的例子,得知无线节点必须使用setdest命令之后才会写到nam数据文件中(到现在原因还没有查明,期待您的评论)。
于是在仿真脚本文件中添加setdest命令,然后运行仿真,问题排除。
需要注意的一个问题是,在nam文件中节点在发数据之前必须已经存在,如果不存在就有会出错,
其实,这个问题已经出现很长时间了,但是直到昨天问题才得到解决。
问题描述
用NS2运行无线仿真,然后运行动画程序nam,但是运行过程中出现“node x is not defined"这样的问题。开始还以为是不是nam出现了问题,经过几步找错和查错,调试终于找到了问题的根源。
问题解决步骤
首先运行ns xxx.tcl,得到仿真的nam动画数据文件,我们假设为:test.nam。
然后用nam运行该数据文件,运行过程中出现节点未定义的错误,怀疑是nam程序的问题,决定对nam进行调试。
进入到nam的安装文件夹,修改Makefile,在选项中添加调试选项。CCOPT = -g -Wall
重新编译生成nam:make clean; make; make install
开始使用GDB进行调试:gdb nam
进入GDB之后输入命令:set args test.nam
然后在文件netmodel.cc的 NetModel::lookupNode()函数处设置断点:b netmodel.cc:1570。
然后开始运行程序,输入r然后回车;
运行到断点处,程序停止运行。此时就可以查找出错的原因了,输入命令p nodes_(存放节点链表的头指针),发现其值为空(= 0x0);于是断定问题的根源是在nam文件中存放节点的链表是空的,进而推知,问题处在test.nam文件而不是nam可执行文件。
打开nam文件查看,问题果然在此,因为在nam数据文件中并没有发现节点定义的语句(以n开头的语句)。
开始查找问题出现的原因,分析了一个成功运行的例子,得知无线节点必须使用setdest命令之后才会写到nam数据文件中(到现在原因还没有查明,期待您的评论)。
于是在仿真脚本文件中添加setdest命令,然后运行仿真,问题排除。
需要注意的一个问题是,在nam文件中节点在发数据之前必须已经存在,如果不存在就有会出错,
相关文章推荐
- windows下的Eclipse连接虚拟机中的hadoop,操作过程中报节点无法识别问题解决
- Cygwin+NS2的安装过程及问题解决
- 解决我的开源代码里面的前一篇后一篇的跳页问题,由于时间关系我不发图了,存储过程没有更改,我改进了一下报错功能,用来重新定义属性
- Android 如何解决开机过程kernel logo到开机动画黑屏问题
- 11g R2 节点系统重建后,删除节点及添加节点 过程和问题解决
- nginx负载下站点错误响应会导致其他节点重复响应问题的解决过程
- gpexpand扩展集群节点过程及问题解决
- NS2仿真过程中nam动画的保存
- cloudsim仿真过程中内存占用过大问题的解决
- ArcGIS教程:使用表示模型和过程模型解决空间问题
- Servlet传输过程中解决中文乱码问题
- 【问题请教】MySQL数据源配置过程中出现的问题===此问题已经解决!
- 基于Xstream工具解决对象到xml文本的集合节点重复问题
- Jquery解决“动画积累”问题
- STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用
- 使用fabric解决百度BMR的spark集群各节点的部署问题
- Oracle数据库编译存储过程挂死问题解决办法
- 解决Jstree 选中父节点时被禁用的子节点也会选中的问题
- MSMQ 安装问题的解决过程