Unsolved Help,coredump analyze
-
thanks for attention,here i has a problem with my desktop application . when i use "windbg" to analyze the MiniDump File , I got the informations as follows :
0:000> kb
*** Stack trace for last set context - .thread/.cxr resets it
ChildEBP RetAddr Args to Child
WARNING: Stack unwind information not available. Following frames may be wrong.
00189228 003aee7d 00189234 00430020 006e0061 Qt5Core!QString::QString+0x18
00189270 00354da1 994731d4 00000000 0000002a MyApp!MyAppCommand::addMMList+0xcd
001892ac 00354487 0b9154f8 00000000 0000002a MyApp!MyAppCommand::qt_static_metacall+0x731
001892d0 56e64f68 00000000 0000002f 0018931c MyApp!MyAppCommand::qt_metacall+0x37
00000000 00000000 00000000 00000000 00000000 Qt5Core!QMetaObject::metacall+0x28
0:000> r
Last set context:
eax=00000001 ebx=0b9154f8 ecx=00189234 edx=00430020 esi=160cf6c8 edi=0782e5d0
eip=56d1b9c8 esp=0018921c ebp=00189228 iopl=0 nv up ei pl nz na pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010207
Qt5Core!QString::QString+0x18:
56d1b9c8 f00fc102 lock xadd dword ptr [edx],eax ds:0023:00430020=45c743ffit seems that something is wrong when i use QString class.
NOTE : The problem is NOT repeatable.source code are as follows:
void MyAppCommand::addMMList() { //m_selecltedList is a QMap<QString,AddrInfo*> foreach(AddrInfo* paddrInfo,m_selecltedList) { if(paddrInfo == NULL) { LOG(INFO)<<"paddrInfo is NULL in MyAppCommand::addMMList"; return; } MMediaCommand* mMediaCommand = MMediaCommand::creatMMediaCommClass(); //Q_INVOKABLE void addToMMediaList(QString name,QString uid, QString utype,int repeaterId,QString repeaterName,int slot); mMediaCommand->addToMMediaList(paddrInfo->name(),paddrInfo->uid(), paddrInfo->utype(), paddrInfo->repeaterId(),paddrInfo->repeaterName(),paddrInfo->slot()); //QString MMediaCommand::showChatPageNew(QString uid,QString name,QString utype,int repeaterId,QString repeaterName,int tmpSlot) mMediaCommand->showChatPageNew(paddrInfo->uid(),paddrInfo->name(),paddrInfo->utype(), paddrInfo->repeaterId(),paddrInfo->repeaterName(),paddrInfo->slot()); } }
Thanks.
-
It could be as simple as your QString may be null. Just check all the QString values. If you comment addToMMediaList or showChatPageNew does it work without a crash ?
-
@dheerendra
I have tried to set all the QString-args to NULL(Args check is done in addToMMediaList and showChatPageNew ) , and it does not dump . By the way , the problem is not repeatable .
Is there any useful informations in the windbg output ? -
Yes it is very random & my usual suspect is QString variables only. You should opt some work-around for these QString variables.