ns-2解决问题之no class variable Tracefile::debug_

在进行NS-2.35的LDoS实验时,遇到'no class variable Tracefile::debug_'错误。通过查阅资料和应用补丁,将源代码中的版本信息修改为实际安装的ns-2版本(从2.27改为2.35),成功解决问题。此方法可能对遇到相同问题的用户有所帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前已经写过如何在Ubuntu18.04中安装NS-2.35的文章,详情点击这里

因为要做有关LDoS的实验,又希望找到别人写的有关源码,几经周折,终于在Shrew's Homepage上找到了原作者提供的资料。但是在准备工作做好之后,按照READEME中的提示进行操作,却并不是那么顺利。这大概是在Linux系统下配置环境普遍会遇到的问题,找不到原因折磨到你直接换系统,再来一次。不过幸而恰好没网,换系统的话再装其他的包不成,所以还是自己寻找原因。

下面说一下具体问题以及我的解决方案。

按照源代码的ReadMe中的Introduction,我进入到相应目录,执行dos.run操作命令,却得到如下图所示的错误:

关键信息在“warning: no class variable Tracefile::debug_”,真是看不懂,不过既然提示是在执行“./ns dos.tcl reno 0 ……”语句出的错,那就去单独执行一下该语句,结果当然也是确实如此:

可以看到在后面我又单独进入了ns,进行了设置变量的操作,即"set tfile [new Tracefile]",提示同样的错误,那么可以确定问题的关键点就在这里了,在dos.tcl中该语句如下:

既然是没有变量,那多半是ns工具代码本身的问题,我等菜鸡怕是没办法了,于是只有拿着错误信息去百度了。在山竹的博客的NS2模拟真实流量找到了相关解决方案,具体可以去他的博客了解,也可以参考相关信息的英文网站,那里提供了解决该问题的补丁包,也可以在本网站中搜索ns-2补丁包直接下载。

这里重点需要说明的就是这个补丁包并不是下来直接就用的,需要对该patch中的内容做些许修改,即将里面的版本信息修改为你所安装的ns-2的版本信息。如下图:

比如我的是2.35,就将原来的2.27修改为2.35,因为原patch文件是受保护的,所以修改完后再另存为一个新的文件,然后把这个新的文件按照补丁文件的README的要求操作即可。(修改的话查找替换一波搞定没问题吧?)

最后我这里是顺利搞定,希望对遇到此问题的朋友能有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值