当我运行castalia / simulations / simpleAggregation时,发现以下错误:
Starting...
$ cd C:/omnetpp-4.6/samples/castalia/simulations/simpleAggregation
$ ../../src/castalia.exe -r 0 -n ..;../../src omnetpp.ini
OMNeT++ Discrete Event Simulation (C) 1992-2014 Andras Varga, OpenSim Ltd.
Version: 4.6, build: 141202-f785492, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer
Setting up Tkenv...
Loading NED files from ..: 3
Loading NED files from ../../src: 33
Loading NED files from C:\omnetpp-4.6\samples\castalia\src: 33
Loading images from C:\omnetpp-4.6\images: *: 0 abstract/*: 90 background/*: 4 block/*: 320 device/*: 195 logo/*: 1 maps/*: 9 misc/*: 70 msg/*: 55 old/*: 111 status/*: 28
Plugin path: ./plugins
undisposed object: (cTopology) SN.wirelessChannel.topo -- check module destructor
undisposed object: (cTopology) SN.wirelessChannel.topo -- check module destructor
End.
答案 0 :(得分:2)
这不是经典的错误案例。
undisposed object
消息提示您在完成使用后,源代码中的消息,数据包或其他OMNeT ++对象未被删除。
这通常表示代码中存在一些内存泄漏。
例如,在您将数据包封装或解封装在另一个数据包中时会创建数据包,之后您使用和删除en / de-capsulated消息,而不是在en / de-capsulation过程中创建的副本。然后,OMNeT ++将显示undisposed object
,其中包含所述数据包的名称。
您可以使用Valgrind在Valgrind内的命令环境中执行模拟时检查内存泄漏,以找出未创建的未处理对象的确切位置。 或者您可以简单地忽略该消息,它(通常)不会中断执行。