使用 omnet++ 查找内存分配错误

2023-12-02

我正在 omnet++ 和静脉(v2.0-rc1)下进行网络模拟,为此我实验了 4 个场景,每个场景都重复 20 次。

在模拟第三个和第四个场景时,我遇到了一些错误(我猜这是一个内存分配错误),它们共享一个共同的功能(ack)。

对于相关模拟,它正常启动并执行几次重复,但此后失败(例如,在第四个场景的第五次重复时失败),输出如下:

0: *** glibc detected *** ./veins: free(): invalid next size (fast): 0x00007fff74bff590 ***
0: ======= Backtrace: =========
0: /lib/x86_64-linux-gnu/libc.so.6(+0x76aa6)[0x2aeb29d1faa6]
0: /lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x2aeb29d2484c]
0: /nfs/homes/hc.arslan90/mixim/mixim/examples/veins/../../out/gcc-release/src/modules/libmiximmodules.so(_ZN9ProphetV220executeInitiatorRoleEsP7Prophetl+0x6f4)[0x2aeb287ce334]
0: /nfs/homes/hc.arslan90/mixim/mixim/examples/veins/../../out/gcc-release/src/modules/libmiximmodules.so(_ZN9ProphetV214handleLowerMsgEP8cMessage+0x4b6)[0x2aeb287d0996]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppsim.so(_ZN11cSimulation10doOneEventEP13cSimpleModule+0xb0)[0x2aeb290135a0]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppcmdenv.so(_ZN6Cmdenv8simulateEv+0x170)[0x2aeb28a6f620]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppcmdenv.so(_ZN6Cmdenv3runEv+0x360)[0x2aeb28a6fba0]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppenvir.so(_ZN9EnvirBase3runEiPPcP14cConfiguration+0x13c)[0x2aeb28ca763c]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppenvir.so(_Z18setupUserInterfaceiPPc+0x55f)[0x2aeb28ca507f]
0: /home/dist/hc.arslan90/omnetpp-4.2/lib/liboppenvir.so(evMain+0x50)[0x2aeb28ca5d30]
0: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x2aeb29cc7eed]
0: ./veins[0x402f21]

为了调试错误,我使用了 valgrind 和以下命令:

valgrind --tool=memecheck ./veins (with veins is the current binary of my simulation)

但似乎所有返回的错误都与我的代码无关(因为我对之前运行良好的代码执行了相同的操作,并且得到了相同的输出)

Edit这是 Valgrind 的输出

==7454== Memcheck, a memory error detector
==7454== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==7454== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==7454== Command: ./veins
==7454==  OMNeT++ Discrete Event Simulation  (C) 1992-2011 Andras Varga, OpenSim Ltd. Version: 4.2, build: 111116-7631e2d, edition: Academic Public License -- NOT FOR COMMERCIAL USE See the license for distribution terms and warranty disclaimer Setting up Tkenv... Loading NED files from /media/DATA/DoctoratTlemcen/Git/mixim/mixim/src/base: 17 Loading NED files from /media/DATA/DoctoratTlemcen/Git/mixim/mixim/src/modules: 85 Loading NED files from /media/DATA/DoctoratTlemcen/Git/mixim/mixim/examples: 45
==7454== Invalid read of size 4
==7454==    at 0x4CFD4A2: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D0940C: FcInit (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFDCE4: FcConfigGetCurrent (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFF87F: FcConfigSubstituteWithPat (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFF8C6: FcConfigSubstitute (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x492DBD1: ??? (in /usr/lib/libtk8.5.so.0)
==7454==    by 0x492E0E1: ??? (in /usr/lib/libtk8.5.so.0)
==7454==    by 0x4877A40: Tk_AllocFontFromObj (in /usr/lib/libtk8.5.so.0)
==7454==  Address 0x500cbbc is 20 bytes inside a block of size 22 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D0940C: FcInit (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFDCE4: FcConfigGetCurrent (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFF87F: FcConfigSubstituteWithPat (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFF8C6: FcConfigSubstitute (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x492DBD1: ??? (in /usr/lib/libtk8.5.so.0)
==7454==    by 0x492E0E1: ??? (in /usr/lib/libtk8.5.so.0)
==7454== 
==7454== Invalid read of size 4
==7454==    at 0x4CFD4B6: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==  Address 0x5031690 is 16 bytes inside a block of size 18 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454== 
==7454== Invalid read of size 4
==7454==    at 0x4CFD4B6: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==  Address 0x5007a40 is 40 bytes inside a block of size 42 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454== 
==7454== Invalid read of size 4
==7454==    at 0x4CFD4A2: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==  Address 0x4ff0314 is 36 bytes inside a block of size 39 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D09065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454== 
==7454== Invalid read of size 4
==7454==    at 0x4CFD4B6: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==  Address 0x4fbe790 is 24 bytes inside a block of size 26 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454== 
==7454== Invalid read of size 4
==7454==    at 0x4CFD4A2: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==  Address 0x4fc7164 is 20 bytes inside a block of size 22 alloc'd
==7454==    at 0x402D5A9: malloc (vg_replace_malloc.c:296)
==7454==    by 0x4CFD407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4CFFB09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D141EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D14A63: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4F58D5A: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F59A81: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F568F0: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F58331: ??? (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4F5B74A: XML_ParseBuffer (in /lib/i386-linux-gnu/libexpat.so.1.5.2)
==7454==    by 0x4D14384: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454==    by 0x4D146A8: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==7454== 

Loading images from /media/DATA/DoctoratTlemcen/Git/mixim/mixim/examples/veins/bitmaps: *: 0   Loading images from ./bitmaps: *: 0   Loading images from ./images: *: 0   Loading images from /home/arslan/Bureau/Doctorat/SIM_Tools_Arslan/omnetpp-4.2/images: *: 0 abstract/*: 90  background/*: 4  block/*: 320  device/*: 195  maps/*: 9  misc/*: 70  msg/*: 55  old/*: 111  status/*: 28  

Plugin path: ./plugins

RUNTIME ERROR. A cRuntimeError exception is about to be thrown, and you requested (by setting debug-on-errors=true in the ini file) that errors abort execution and break into the debugger.

You should now probably be running the simulation under gdb or another debugger. The simulation kernel will now raise a SIGABRT signal which will get you into the debugger. If you are not running under a debugger, you can still use the core dump for post-mortem debugging. Once in the debugger, view the call stack (in gdb: "bt" command) to see the context of the runtime error.

<!> Error in module (cCompoundModule) scenario (id=1) during network setup: Class "ObstacleControl" not found -- perhaps its code was not linked in, or the class wasn't registered with Register_Class(), or in the case of modules and channels, with Define_Module()/Define_Channel().

TRAPPING on the exception above, due to a debug-on-errors=true configuration option. Is your debugger ready?
==7454== 
==7454== HEAP SUMMARY:
==7454==     in use at exit: 29,804,879 bytes in 31,424 blocks
==7454==   total heap usage: 475,694 allocs, 444,270 frees, 682,975,656 bytes allocated
==7454== 
==7454== LEAK SUMMARY:
==7454==    definitely lost: 3,828 bytes in 85 blocks
==7454==    indirectly lost: 15,079 bytes in 473 blocks
==7454==      possibly lost: 28,326,958 bytes in 19,505 blocks
==7454==    still reachable: 1,459,014 bytes in 11,361 blocks
==7454==         suppressed: 0 bytes in 0 blocks
==7454== Rerun with --leak-check=full to see details of leaked memory
==7454== 
==7454== For counts of detected and suppressed errors, rerun with: -v
==7454== ERROR SUMMARY: 22 errors from 6 contexts (suppressed: 0 from 0) Processus arrêté

我还尝试激活转储文件并使用 gdb 对其进行分析,我得到以下输出:

Reading symbols from /nfs/homes/hc.arslan90/mixim/mixim/examples/veins/veins...(no debugging symbols found)...done.

warning: exec file is newer than core file. [New LWP 879]

warning: Can't read pathname for load map: Erreur d'entrée/sortie.

warning: .dynamic section for "/nfs/homes/hc.arslan90/mixim/mixim/examples/veins/../../out/gcc-release/src/modules/libmiximmodules.so" is not at the expected address (wrong library or version mismatch?) [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `./veins -f /home/dist/hc.arslan90/mixim/mixim/examples/veins/petite2H_Ack/proph'. Program terminated with signal 6, Aborted.
#0  0x00002ad31876c1a5 in *__GI_raise (sig=<optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64    ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.

有人可以帮助识别错误吗?

注意:有错误的代码引入了一个特定的数据结构,它是一个 std::map ,其中包含一个 std::set 作为值


您将需要使用相同的命令行参数启动模拟的调试(或内存检查)运行;否则,不会加载任何模型库,并且您的模拟将不会执行。

请注意,无论您如何启动模拟的调试或内存检查运行,您都应该确保在Cmdenv(命令行环境)而不是Tkenv。您的仿真不仅执行速度会更快,您还可以确保所有警告都与您的仿真模型相关,而不是与 GUI 和各种 GUI 库相关。您可以通过附加来完成此操作-u Cmdenv到命令行或(在 IDE 中)通过编辑模拟的运行配置并选择用户界面:命令行.

如果您从命令行运行模拟,只需在通常执行的命令前面加上前缀即可opp_run或您的模拟二进制文件(例如,./veins) with gdb --args(运行调试器)或valgrind --tool=memcheck(运行内存检查器)。命令行示例可能是/usr/bin/valgrind --tool=memcheck opp_run -l../../src/veins -n../../src/veins;. -u Cmdenv(其中添加了粗体文本)。

如果您想从命令行运行模拟,但当前正在使用 OMNeT++ IDE,您可以快速检查哪些命令行参数用于运行模拟。观察中的输出Console运行模拟时查看。输出可能会以OMNeT++ Discrete Event Simulation。在输出的开头附近,您还会发现两行以$。这些是 IDE 用于运行模拟的确切命令。

如果您想从 OMNeT++ IDE 运行模拟,请注意,它还具有内置功能,可以使用调试器或内存检查器运行模拟。要在其中任一版本中运行模拟,请右键单击 .ini 文件(例如,omnetpp.ini您的模拟并选择Debug As (for gdb) or 配置文件为 (for valgrind), then OMNeT++ 模拟。运行模拟后,您可以找到输出valgrind在一个新的Valgrind View.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 omnet++ 查找内存分配错误 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • 在 Django 中自动填充一组通用的多对多字段?

    我正在尝试结合this答案和这个one 带有一点 for 循环 在创建角色时 我想添加所有可能的技能 其值为 0 但我对如何遵循上述答案感到困惑 我有这个混合 class CrossCharacterMixin models Model c
  • PHP 多维数组 - 删除重复项

    如果有人能在这里帮助我 我将永远感激不已 因为我已经花了大约 2 天的时间试图让它发挥作用 我想获取两个多维数组并比较它们 然后remove任何重复的记录 场景是 array2 中的值已分配给用户的配置文件 array1 中的值是用户可以选
  • Python:将文本文件转换为二进制文件

    我们可以将任何数字文件转换为二进制文件 我有一个1MB的文本文件 我想将其转换为二进制字符串并将输出视为二进制数 反之亦然 换句话说 如果我有二进制数 我想将其转换为文本文件 我怎样才能在Python中做到这一点 有没有标准的方法来做到这一
  • 从 Arduino UNO R3 套件读取数据

    我正在尝试读取我已经存储在的数据Arduino套件 我正在使用物理类库为了达成这个 我通过使用以下命令将套件连接到我的电脑来测试该套件 读取数据 B 型 USB 电缆由Arduino本身提供并使用泰拉术语 在我按键盘上的 后数据开始传输 特
  • Python - 确定参数是否为整数

    我对 Python 比较陌生 我想提出一个基本程序 可以确定参数在函数中是否有整数 我不知道该在空白处填什么 我通常不使用 if in 类型配对 该函数的基础是这样的 def is number char if somethinghere
  • 使用 Python 发送 HTML 电子邮件

    如何使用Python发送电子邮件中的HTML内容 我可以发送简单的短信 From Python v2 7 14 文档 18 1 11 电子邮件 示例 以下是如何使用替代纯文本版本创建 HTML 消息的示例 usr bin python im
  • Playstore 会拒绝使用 armeabi-v7a、arm64-v8a、x86 但不支持 x86-64 的应用吗?

    来自 Android 开发者网站 https developer android com distribute best practices develop 64 bit很明显 从 2019 年 8 月 1 日开始 Google Play
  • WordPress print_thumbnail 没有给出正确的 url

    我一直很难解决这个问题 我在 Ubuntu Server 64 位上运行 Wordpress 3 3 1 因此 我可以上传图像并使用提供的网址查看它 但是 当我将其设置为特征图像时 该功能似乎 print thumbnail 没有给我正确的
  • C 中的# 和## 宏[重复]

    这个问题在这里已经有答案了 方案一 include
  • 在本地主机上运行 Node JS 服务器

    例如 我想制作一个像这样的非常简单的网络服务器 const http require http http createServer function req res res writeHead 200 Content Type text p
  • Java class.getResourceAsStream() 返回错误的字节

    我刚刚遇到了 getResourceAsStream 的一个非常奇怪的问题 在我的产品项目 JUnit 测试中 我使用 getResourceAsStream 读取测试数据 我发现 getResourceAsStream 有时会替换一些字节
  • gwt-maven-plugin:编译失败“状态 1”

    我已经在 GWT 项目上工作了一段时间 并且我相信自从添加了新的依赖项后 我收到了以下错误 无法在项目项目上执行目标 org codehaus mojo gwt maven plugin 2 6 1 compile 默认 命令 bin sh
  • 如何在我的 Java 程序中使用 CardLayout 来实现登录和菜单项

    我正在创建一个 商店 程序 基本上可以允许员工使用我提供的用户名和密码登录 登录后 员工可以看到一个 主菜单 其中有四个按钮 销售登记 PLU 设置 设置和注销 在此屏幕上 员工可以通过单击任何按钮导航到该屏幕 我不希望每次单击按钮时都会弹
  • 列出 FTP 目录及其子目录中的文件名

    我在网上搜索过 但没有找到任何结果 实际上我想获取我拥有的所有文件的名称root and Directory and Sub Directory 我尝试了如下代码 但它只给了我以下文件root我的 FTP 我在 FTP 中的文件夹如下所示
  • Nginx 连接到 Unicorn 时权限被拒绝

    我在网上尝试了很多建议 但没有任何效果 我让 unicorn 和 nginx 致力于在 CentOS 6 5 服务器上部署 ruby on Rails 应用程序 它以前有效 但现在当我尝试拉起该网站时 我收到了错误的网关错误 我正在使用的两
  • 带有“日期时间”xAxis 的 Highcharts 图表 - 在向下钻取时使用类别

    有没有办法让主系列上的 xAxis 类型具有 日期时间 但是当单击系列时 让钻取使用当时的类别 在这个 jsfiddle 示例中 http jsfiddle net kadams 3e3xqv7e 您可以看到 当使用 category 作为
  • 用于验证 Excel 单元格的正则表达式

    我正在开发一个 php 应用程序 用户必须插入 Excel 的单元格 ID 例如A1 or AB32 一个存储在数据库中供以后使用的值 我正在尝试使用正则表达式验证单元格 ID 格式 但它似乎不起作用 这就是我到目前为止所得到的 a zA
  • 以 JSON 形式传递 javascript 代码

    我正在使用 jQuery 对 PHP 脚本进行 AJAX 调用 该脚本需要返回嵌入在 JSON 结果中的 javascript 代码 以便 jQuery 代码执行 如何以 JSON 格式传递 javascript 代码 两种方式 您必须将其
  • 如何在 d3.js 中创建“facetplot”?

    假设我有一个不同运动员的数据集 他们在不同的日子执行相同的测试 每天 他们都会进行几次试验 运行 我想使用 d3 js 可视化每个运动员这些天的发展 但我很难理解如何完成这项任务 在Python中使用seaborn或在R中使用ggplot2
  • 使用 omnet++ 查找内存分配错误

    我正在 omnet 和静脉 v2 0 rc1 下进行网络模拟 为此我实验了 4 个场景 每个场景都重复 20 次 在模拟第三个和第四个场景时 我遇到了一些错误 我猜这是一个内存分配错误 它们共享一个共同的功能 ack 对于相关模拟 它正常启