我尝试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的每个地方,但我得到同样的错误!
你可以指导我在哪里做错了吗?答案 0 :(得分:2)
我终于解决了。 当Length()函数定义为protected时显示此错误。 所以我把它定义为公共,这个问题解决了:)
但是为了解决tcl上的任何错误,您可以使用以下命令:
valgrid --track-check=yes ns filename.tcl
运行此命令后,您可以看到错误的位置和原因。 我用它来查找我的问题的原因并看到“内存堆栈”。这意味着程序无法访问受保护功能的内存!