首页| 论坛| 消息

标题:mingw 版本Qt程序崩溃 有啥方法可以快速排查崩溃原因吗
作者:shixingya
日期:2018-01-30 19:57
内容:

mingw 版本Qt程序崩溃 有啥方法可以快速排查崩溃原因吗
偶现问题
mingw 可以生成pdb文件 用dmp来调试吗, windows环境


#1 [shixingya 01-31 09:01]
http://blog.csdn.net/lanhy999/article/details/12189375
这个帖子对于小程序有用 大型程序 怎么获取崩溃时堆栈信息呢
急求 好用的 快速排查 mingw 版本Qt程序崩溃 崩溃原因的方法
#2 [大漠之鹰 01-31 09:09]
gdb调试一下,看看崩溃的点是不是一样。崩溃报什么错阿
#3 [shixingya 01-31 15:40]
首先,我们可以使用位于{mingw path} / bin的addr2line.exe。例如,如果你得到这样的崩溃日志:
"E:\\qt\\untitled5.exe"
"Exception Addr:00904B21 :Module: C:\\Qt\\Qt5.9.0\\5.9\\mingw53_32\\bin\\Qt5Widgetsd.dll"
"Exception Code:C0000005 :Read Address:00000000"
"Instruction:8B 01 8B 40 34 C7 04 24 00 00 00 00 FF D0 83 EC"
"Registers: "
"EAX: 00904B1EEBX: 185304C8ECX: 00000000EDX: 18500048"
"ESI: 1851DD60EDI: 755E16DDESP: 0028FD20EBP: 0028FD68"
"EIP: 00904B21EFlags: 00010202"
"00904B21:C:\\Qt\\Qt5.9.0\\5.9\\mingw53_32\\bin\\Qt5Widgetsd.dll"
"0040187C:E:\\qt\\untitled5.exe"
"004017AB:E:\\qt\\untitled5.exe"
"004016BC:E:\\qt\\untitled5.exe"
"00403B45:E:\\qt\\untitled5.exe"
我们使用addr2line来查找崩溃点
C:\Qt\Qt5.9.0\Tools\mingw530_32\bin>addr2line.exe -f -e e:\qt\untitled5.exe 0040187C 004017AB 004016BC 00403B45
_ZN4testC2Ev
E:\qt\untitled5/test.cpp:6
_ZN10MainWindowC2EP7QWidget
E:\qt\untitled5/mainwindow.cpp:12
_Z5qMainiPPc
E:\qt\untitled5/main.cpp:35
WinMain@16
c:\Users\qt\work\qt\qtbase\src\winmain/qtmain_win.cpp:104

这样做就可以了 很不错
#4 回 shixingya 的帖子 [stlcours 01-31 17:22]
shixingya:首先,我们可以使用位于{mingw path} / bin的addr2line.exe。例如,如果你得到这样的崩溃日志:
"E:\\qt\\untitled5.exe"
"Exception Addr:  00904B21 :Module: C:\\Qt\\Qt5.9.0\\5.9\\mingw53_32\\bin\\Qt5Widgetsd.dll"
"Exception Code:&nb .. (2018-01-31 15:40) 
这是你亲测的结果?这么牛!
#5 回 stlcours 的帖子 [shixingya 01-31 18:46]
stlcours:这是你亲测的结果?这么牛! (2018-01-31 17:22) 
亲测可用

<< 1 2 >> (1/2)

回复 发表
主题 版块