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

Reply via email to