如何在AODV中获得队列长度?

时间:2014-01-13 05:42:05

标签: ns2

我尝试length of queue in MAC layer into aodv protocol by ns2但是当我回想起if queue->length()函数时,得到了"Segmentation Fault"

我搜索了如何获取MAC层中的队列长度并得到它的原因每次都返回零值。

不幸的是我没有找到任何正确答案来解决它! 我做了以下步骤:

 in AODV::recvHello(Packet *p){
 ....
 double length;
 length=ifqueue->length();
 ...
 }

但是当我运行无线模拟文件时,输出中出现了分段错误(核心转储)!

我试着回想起AODV的每个地方,但我得到同样的错误!

你可以指导我在哪里做错了吗?

1 个答案:

答案 0 :(得分:2)

我终于解决了。 当Length()函数定义为protected时显示此错误。 所以我把它定义为公共,这个问题解决了:)

但是为了解决tcl上的任何错误,您可以使用以下命令:

valgrid --track-check=yes ns filename.tcl

运行此命令后,您可以看到错误的位置和原因。 我用它来查找我的问题的原因并看到“内存堆栈”。这意味着程序无法访问受保护功能的内存!