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 CPUs

    Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
    Crash address: 0x6a0818ec

    Thread 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 = 0x00010206

    1 ntdll.dll + 0x1a0a4
    eip = 0x76f0a0a4 esp = 0x0096cf50 ebp = 0x0096cfdc

    2 MSVCR100D.dll!_realloc_base [realloc.c : 85 + 0x17]
    eip = 0x6656a620 esp = 0x0096cfe4 ebp = 0x0096d000

    3 MSVCR100D.dll!realloc_help [dbgheap.c : 832 + 0x10]
    eip = 0x66536493 esp = 0x0096d008 ebp = 0x0096d028

    4 MSVCR100D.dll!_realloc_dbg [dbgheap.c : 1040 + 0x1b]
    eip = 0x665360ce esp = 0x0096d030 ebp = 0x0096d074

    5 MSVCR100D.dll!realloc [dbgrealloc.c : 60 + 0x13]
    eip = 0x66548b49 esp = 0x0096d07c ebp = 0x0096d094

    6 Qt5Cored.dll!QListData::realloc(int) [qlist.cpp : 148 + 0x17]
    eip = 0x54fafc3d esp = 0x0096d09c ebp = 0x0096d0b0

    7 Qt5Cored.dll!QListData::prepend() [qlist.cpp : 200 + 0x1d]
    eip = 0x54fafecd esp = 0x0096d0b8 ebp = 0x0096d0cc

    8 Qt5Cored.dll!QList<QState *>::prepend(QState * const &) [qlist.h : 574 + 0x8]
    eip = 0x552a9b26 esp = 0x0096d0d4 ebp = 0x0096d10c

    9 Qt5Cored.dll!QStateMachinePrivate::selectTransitions(QEvent *) [qstatemachine.cpp : 347 + 0xc]
    eip = 0x55299387 esp = 0x0096d114 ebp = 0x0096d16c

    10 Qt5Cored.dll!QStateMachinePrivate::_q_process() [qstatemachine.cpp : 1441 + 0x10]
    eip = 0x5529d572 esp = 0x0096d174 ebp = 0x0096d218

    11 Qt5Cored.dll!QStateMachine::qt_static_metacall(QObject *,QMetaObject::Call,int,void * *) [moc_qstatemachine.cpp : 114 + 0xf]
    eip = 0x552a0885 esp = 0x0096d220 ebp = 0x0096d234

    12 Qt5Cored.dll!QMetaCallEvent::placeMetaCall(QObject *) [qobject.cpp : 487 + 0x1d]
    eip = 0x5523a54d esp = 0x0096d23c ebp = 0x0096d254

    13 Qt5Cored.dll!QObject::event(QEvent *) [qobject.cpp : 1241 + 0x14]
    eip = 0x5523b47a esp = 0x0096d25c ebp = 0x0096d30c

    14 Qt5Cored.dll!QAbstractState::event(QEvent *) [qabstractstate.cpp : 211 + 0xc]
    eip = 0x552b7663 esp = 0x0096d314 ebp = 0x0096d31c

    15 Qt5Cored.dll!QState::event(QEvent *) [qstate.cpp : 527 + 0xc]
    eip = 0x552b88bf esp = 0x0096d324 ebp = 0x0096d330

    16 Qt5Cored.dll!QStateMachine::event(QEvent *) [qstatemachine.cpp : 2362 + 0xc]
    eip = 0x552a01ac esp = 0x0096d338 ebp = 0x0096d378

    17 Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject *,QEvent *) [qapplication.cpp : 3522 + 0x11]
    eip = 0x547636ee esp = 0x0096d380 ebp = 0x0096d398

    18 Qt5Widgetsd.dll!QApplication::notify(QObject *,QEvent *) [qapplication.cpp : 2975 + 0x10]
    eip = 0x54761248 esp = 0x0096d3a0 ebp = 0x0096d9dc

    19 Qt5Cored.dll!QCoreApplication::notifyInternal(QObject *,QEvent *) [qcoreapplication.cpp : 935 + 0x15]
    eip = 0x551eedc4 esp = 0x0096d9e4 ebp = 0x0096da20

    20 Qt5Cored.dll!QCoreApplication::sendEvent(QObject *,QEvent *) [qcoreapplication.h : 237 + 0x39]
    eip = 0x551f44a9 esp = 0x0096da28 ebp = 0x0096da34

    21 Qt5Cored.dll!QCoreApplicationPrivate::sendPostedEvents(QObject *,int,QThreadData *) [qcoreapplication.cpp : 1539 + 0xd]
    eip = 0x551efc66 esp = 0x0096da3c ebp = 0x0096dac0

    22 Qt5Cored.dll!QCoreApplication::sendPostedEvents(QObject *,int) [qcoreapplication.cpp : 1397 + 0x11]
    eip = 0x551ef922 esp = 0x0096dac8 ebp = 0x0096dad8

    23 qwindowsd.dll + 0x40211
    eip = 0x63290211 esp = 0x0096dae0 ebp = 0x0096daec

    24 Qt5Cored.dll!qt_internal_proc(HWND__ *,unsigned int,unsigned int,long) [qeventdispatcher_win.cpp : 421 + 0xd]
    eip = 0x55287177 esp = 0x0096daf4 ebp = 0x0096db8c

    25 user32.dll + 0x7443
    eip = 0x76a27443 esp = 0x0096db94 ebp = 0x0096dbb8

    26 user32.dll + 0x7630
    eip = 0x76a27630 esp = 0x0096dbc0 ebp = 0x0096dc30

    27 user32.dll + 0x7bf6
    eip = 0x76a27bf6 esp = 0x0096dc38 ebp = 0x0096dc98

    28 user32.dll + 0x7c59
    eip = 0x76a27c59 esp = 0x0096dca0 ebp = 0x0096dca8

    29 Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlagsQEventLoop::ProcessEventsFlag) [qeventdispatcher_win.cpp : 756 + 0xd]
    eip = 0x552882d3 esp = 0x0096dcb0 ebp = 0x0096fab0

    30 qwindowsd.dll + 0x4013c
    eip = 0x6329013c esp = 0x0096fab8 ebp = 0x0096fb00

    31 Qt5Cored.dll!QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) [qeventloop.cpp : 136 + 0x22]
    eip = 0x551eb98c esp = 0x0096fb08 ebp = 0x0096fb18

    @


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.