Access violation in QListData::prepend()
-
Hi,
I am using QStateMachine objects in my application and the following mechanism to trigger a specific transition.@stateMachine->postEvent(new MyEventClass())@
On some occurrences the application crashes and I get the appended backtrace which makes me think that the error is probably related to the above line of code (but I cannot exclude that it comes from something else as the state machine also gets other signals).
The error is very hard to reproduce, so I was not able to make a reduced example.
How can I narrow down the possible causes for this error?
Thank you.
Best regards,
Manuel@Operating system: Windows NT
6.2.9200
CPU: x86
GenuineIntel family 6 model 53 stepping 1
4 CPUsCrash reason: EXCEPTION_ACCESS_VIOLATION_READ
Crash address: 0x6a0818ecThread 0 (crashed)
0 ntdll.dll + 0x1a18b
eip = 0x76f0a18b esp = 0x0096ce1c ebp = 0x0096cf48 ebx = 0x00000000
esi = 0x00ad3815 edi = 0x00e00000 eax = 0x00000000 ecx = 0x6a0818d8
edx = 0x0569c0a8 efl = 0x000102061 ntdll.dll + 0x1a0a4
eip = 0x76f0a0a4 esp = 0x0096cf50 ebp = 0x0096cfdc2 MSVCR100D.dll!_realloc_base [realloc.c : 85 + 0x17]
eip = 0x6656a620 esp = 0x0096cfe4 ebp = 0x0096d0003 MSVCR100D.dll!realloc_help [dbgheap.c : 832 + 0x10]
eip = 0x66536493 esp = 0x0096d008 ebp = 0x0096d0284 MSVCR100D.dll!_realloc_dbg [dbgheap.c : 1040 + 0x1b]
eip = 0x665360ce esp = 0x0096d030 ebp = 0x0096d0745 MSVCR100D.dll!realloc [dbgrealloc.c : 60 + 0x13]
eip = 0x66548b49 esp = 0x0096d07c ebp = 0x0096d0946 Qt5Cored.dll!QListData::realloc(int) [qlist.cpp : 148 + 0x17]
eip = 0x54fafc3d esp = 0x0096d09c ebp = 0x0096d0b07 Qt5Cored.dll!QListData::prepend() [qlist.cpp : 200 + 0x1d]
eip = 0x54fafecd esp = 0x0096d0b8 ebp = 0x0096d0cc8 Qt5Cored.dll!QList<QState *>::prepend(QState * const &) [qlist.h : 574 + 0x8]
eip = 0x552a9b26 esp = 0x0096d0d4 ebp = 0x0096d10c9 Qt5Cored.dll!QStateMachinePrivate::selectTransitions(QEvent *) [qstatemachine.cpp : 347 + 0xc]
eip = 0x55299387 esp = 0x0096d114 ebp = 0x0096d16c10 Qt5Cored.dll!QStateMachinePrivate::_q_process() [qstatemachine.cpp : 1441 + 0x10]
eip = 0x5529d572 esp = 0x0096d174 ebp = 0x0096d21811 Qt5Cored.dll!QStateMachine::qt_static_metacall(QObject *,QMetaObject::Call,int,void * *) [moc_qstatemachine.cpp : 114 + 0xf]
eip = 0x552a0885 esp = 0x0096d220 ebp = 0x0096d23412 Qt5Cored.dll!QMetaCallEvent::placeMetaCall(QObject *) [qobject.cpp : 487 + 0x1d]
eip = 0x5523a54d esp = 0x0096d23c ebp = 0x0096d25413 Qt5Cored.dll!QObject::event(QEvent *) [qobject.cpp : 1241 + 0x14]
eip = 0x5523b47a esp = 0x0096d25c ebp = 0x0096d30c14 Qt5Cored.dll!QAbstractState::event(QEvent *) [qabstractstate.cpp : 211 + 0xc]
eip = 0x552b7663 esp = 0x0096d314 ebp = 0x0096d31c15 Qt5Cored.dll!QState::event(QEvent *) [qstate.cpp : 527 + 0xc]
eip = 0x552b88bf esp = 0x0096d324 ebp = 0x0096d33016 Qt5Cored.dll!QStateMachine::event(QEvent *) [qstatemachine.cpp : 2362 + 0xc]
eip = 0x552a01ac esp = 0x0096d338 ebp = 0x0096d37817 Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject *,QEvent *) [qapplication.cpp : 3522 + 0x11]
eip = 0x547636ee esp = 0x0096d380 ebp = 0x0096d39818 Qt5Widgetsd.dll!QApplication::notify(QObject *,QEvent *) [qapplication.cpp : 2975 + 0x10]
eip = 0x54761248 esp = 0x0096d3a0 ebp = 0x0096d9dc19 Qt5Cored.dll!QCoreApplication::notifyInternal(QObject *,QEvent *) [qcoreapplication.cpp : 935 + 0x15]
eip = 0x551eedc4 esp = 0x0096d9e4 ebp = 0x0096da2020 Qt5Cored.dll!QCoreApplication::sendEvent(QObject *,QEvent *) [qcoreapplication.h : 237 + 0x39]
eip = 0x551f44a9 esp = 0x0096da28 ebp = 0x0096da3421 Qt5Cored.dll!QCoreApplicationPrivate::sendPostedEvents(QObject *,int,QThreadData *) [qcoreapplication.cpp : 1539 + 0xd]
eip = 0x551efc66 esp = 0x0096da3c ebp = 0x0096dac022 Qt5Cored.dll!QCoreApplication::sendPostedEvents(QObject *,int) [qcoreapplication.cpp : 1397 + 0x11]
eip = 0x551ef922 esp = 0x0096dac8 ebp = 0x0096dad823 qwindowsd.dll + 0x40211
eip = 0x63290211 esp = 0x0096dae0 ebp = 0x0096daec24 Qt5Cored.dll!qt_internal_proc(HWND__ *,unsigned int,unsigned int,long) [qeventdispatcher_win.cpp : 421 + 0xd]
eip = 0x55287177 esp = 0x0096daf4 ebp = 0x0096db8c25 user32.dll + 0x7443
eip = 0x76a27443 esp = 0x0096db94 ebp = 0x0096dbb826 user32.dll + 0x7630
eip = 0x76a27630 esp = 0x0096dbc0 ebp = 0x0096dc3027 user32.dll + 0x7bf6
eip = 0x76a27bf6 esp = 0x0096dc38 ebp = 0x0096dc9828 user32.dll + 0x7c59
eip = 0x76a27c59 esp = 0x0096dca0 ebp = 0x0096dca829 Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlagsQEventLoop::ProcessEventsFlag) [qeventdispatcher_win.cpp : 756 + 0xd]
eip = 0x552882d3 esp = 0x0096dcb0 ebp = 0x0096fab030 qwindowsd.dll + 0x4013c
eip = 0x6329013c esp = 0x0096fab8 ebp = 0x0096fb0031 Qt5Cored.dll!QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) [qeventloop.cpp : 136 + 0x22]
eip = 0x551eb98c esp = 0x0096fb08 ebp = 0x0096fb18@