I'm getting a weird seg fault "in typeinfo" for the Printable() class. I don't really know what it's talking, but I'm guessing it has something to do with Packet inheriting from Printable and FastAlloc and it being deleted on that line in recvTiming. I looked at what the pointer pkt was pointing at, and the values in the packet seemed to make sense so it likely isn't pointing into oblivion. This happens in timing mode after things have run for a little while, so packets almost certainly have been allocated and deleted by this point. Has anyone run into this sort of problem before? With m5.debug, the seg fault is almost the same, except that the segfault is in the vtable. Perhaps the destructors aren't being set up right? Maybe we broke gcc? valgrind info is after the backtrace.
#0 0x0000000000ece272 in typeinfo for Printable () #1 0x0000000000e8124a in SimpleTimingPort::recvTiming (this=0x1b5a410, pkt=0x1c88560) at build/X86_FS/mem/tport.cc:100 #2 0x0000000000592718 in Bus::recvTiming (this=0x1c77fd0, pkt=0x1c88560) at build/X86_FS/mem/port.hh:186 #3 0x000000000059813c in Bus::BusPort::recvTiming (this=<value optimized out>, pkt=0x7f1540d66218) at build/X86_FS/mem/bus.hh:89 #4 0x000000000057cd62 in Bridge::BridgePort::trySend (this=0x1b53e68) at build/X86_FS/mem/port.hh:186 #5 0x00000000009ff809 in EventQueue::serviceOne (this=<value optimized out>) at build/X86_FS/sim/eventq.cc:202 #6 0x0000000000d61bd3 in simulate (num_cycles=9223372036854775807) at build/X86_FS/sim/simulate.cc:73 #7 0x0000000000dcf372 in _wrap_simulate (self=<value optimized out>, args=0x17e3f10) at build/X86_FS/python/swig/event_wrap.cc:4156 #8 0x00007f1541994677 in PyObject_Call () from /usr/lib/libpython2.5.so.1.0 #9 0x00007f1541a053aa in PyEval_EvalFrameEx () from /usr/lib/libpython2.5.so.1.0 #10 0x00007f1541a081b2 in PyEval_EvalCodeEx () from /usr/lib/libpython2.5.so.1.0 #11 0x00007f1541a06c1c in PyEval_EvalFrameEx () from /usr/lib/libpython2.5.so.1.0 #12 0x00007f1541a07ba7 in PyEval_EvalFrameEx () from /usr/lib/libpython2.5.so.1.0 #13 0x00007f1541a081b2 in PyEval_EvalCodeEx () from /usr/lib/libpython2.5.so.1.0 #14 0x00007f1541a08452 in PyEval_EvalCode () from /usr/lib/libpython2.5.so.1.0 #15 0x00007f1541a07af0 in PyEval_EvalFrameEx () from /usr/lib/libpython2.5.so.1.0 #16 0x00007f1541a081b2 in PyEval_EvalCodeEx () from /usr/lib/libpython2.5.so.1.0 #17 0x00007f1541a06c1c in PyEval_EvalFrameEx () from /usr/lib/libpython2.5.so.1.0 #18 0x00007f1541a081b2 in PyEval_EvalCodeEx () from /usr/lib/libpython2.5.so.1.0 #19 0x00007f1541a08452 in PyEval_EvalCode () from /usr/lib/libpython2.5.so.1.0 #20 0x00007f1541a211b2 in ?? () from /usr/lib/libpython2.5.so.1.0 #21 0x00007f1541a213aa in PyRun_StringFlags () from /usr/lib/libpython2.5.so.1.0 #22 0x0000000000b273e1 in m5Main (argc=<value optimized out>, argv=<value optimized out>) at build/X86_FS/sim/init.cc:194 #23 0x00000000004098c2 in main (argc=4, argv=0x7fff4a4e9d68) at build/X86_FS/sim/main.cc:57 valgrind takes a LONG time to grind through to the problem, but the only real issue it finds is at the segfault. Maybe it tries to execute the vtable? Maybe it tries to write something there? I'm in unfamiliar territory with FastAlloc and mulitple inheritance. ==8822== ==8822== Process terminating with default action of signal 11 (SIGSEGV) ==8822== Bad permissions for mapped region at address 0xDD7D70 ==8822== at 0xDD7D72: (within /home/gblack/m5/repos/m5.x86fs/build/X86_FS/m5.debug) ==8822== by 0x57B3DF: Port::sendTiming(Packet*) (port.hh:186) ==8822== by 0x58765F: Bus::recvTiming(Packet*) (bus.cc:243) ==8822== by 0x59049B: Bus::BusPort::recvTiming(Packet*) (bus.hh:89) ==8822== by 0x57B3DF: Port::sendTiming(Packet*) (port.hh:186) ==8822== by 0x574A05: Bridge::BridgePort::trySend() (bridge.cc:260) ==8822== by 0x57D0E0: Bridge::BridgePort::SendEvent::process() (bridge.hh:150) ==8822== by 0x96DFDE: EventQueue::serviceOne() (eventq.cc:202) ==8822== by 0xC81079: simulate(long) (simulate.cc:73) ==8822== by 0xCE353A: _wrap_simulate__SWIG_0 (event_wrap.cc:4156) ==8822== by 0xCE366B: _wrap_simulate (event_wrap.cc:4206) ==8822== by 0x5487676: PyObject_Call (in /usr/lib64/libpython2.5.so.1.0) ==8822== Gabe _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
