• 7209阅读
  • 9回复

mingw 版本Qt程序崩溃 有啥方法可以快速排查崩溃原因吗 [复制链接]

上一主题 下一主题
离线shixingya
 

只看楼主 倒序阅读 楼主  发表于: 2018-01-30
mingw 版本Qt程序崩溃 有啥方法可以快速排查崩溃原因吗
偶现问题

mingw 可以生成pdb文件 用dmp来调试吗, windows环境
本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线shixingya

只看该作者 1楼 发表于: 2018-01-31
http://blog.csdn.net/lanhy999/article/details/12189375

   这个帖子对于小程序有用 大型程序 怎么获取崩溃时堆栈信息呢
急求 好用的 快速排查 mingw 版本Qt程序崩溃 崩溃原因的方法
本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线大漠之鹰

只看该作者 2楼 发表于: 2018-01-31
gdb调试一下,看看崩溃的点是不是一样。崩溃报什么错阿
本是后山人,偶作前堂客,醉舞经阁半卷书,坐井说天阔。大志戏功名,海斗量福祸,论到囊中羞涩时,怒指乾坤错
QQ:874164244
离线shixingya

只看该作者 3楼 发表于: 2018-01-31
首先,我们可以使用位于{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: 00904B1E  EBX: 185304C8  ECX: 00000000  EDX: 18500048"
"ESI: 1851DD60  EDI: 755E16DD  ESP: 0028FD20  EBP: 0028FD68"
"EIP: 00904B21  EFlags: 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


这样做就可以了 很不错
本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线stlcours

只看该作者 4楼 发表于: 2018-01-31
回 shixingya 的帖子
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) 

这是你亲测的结果?这么牛!
离线shixingya

只看该作者 5楼 发表于: 2018-01-31
回 stlcours 的帖子
stlcours:这是你亲测的结果?这么牛! (2018-01-31 17:22) 

亲测可用
本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线stlcours

只看该作者 6楼 发表于: 2018-01-31
回 shixingya 的帖子
shixingya:亲测可用 (2018-01-31 18:46) 

既然是同道中人,我也整天使用mingw。那么还想问一下,mingw的编译质量可靠吗?能用于生产开发吗?还有它的-O3优化可靠吗?好几年前记得LLVM的-O3居然有非常明显的bug,没人敢用O3。谢谢赐教。
离线shixingya

只看该作者 7楼 发表于: 2018-01-31
回 stlcours 的帖子
stlcours:既然是同道中人,我也整天使用mingw。那么还想问一下,mingw的编译质量可靠吗?能用于生产开发吗?还有它的-O3优化可靠吗?好几年前记得LLVM的-O3居然有非常明显的bug,没人敢用O3。谢谢赐教。 (2018-01-31 20:13) 

mingw我们已经商用两年多了
本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线mugua1987022

只看该作者 8楼 发表于: 2019-07-08
回 shixingya 的帖子
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) 

我按照你这种方法,不打印行,麻烦帮我看看哪里有问题,谢谢!
Process:  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
Exception Addr:  005C589D   Module: C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
Exception Code:  C0000005
Read Address:  00000000
Instruction:  8B 00 83 C0 0C 8B 18 8D 45 E8 C7 44 24 04 00 00
Registers:
EAX: 00000000  EBX: 00000000  ECX: 0022D430  EDX: 00000000
ESI: 0050B620  EDI: 0000000D  ESP: 0022D380  EBP: 0022D3B8
EIP: 005C589D  EFlags: 00010202
Call Stack:
005C589D  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
00439836  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
0040A0CE  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
0050B80F  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
68A22CA2  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\Qt5Core.dll
0050BECD  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
00407114  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
005C01AC  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
005BCC47  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\ROMCC.exe
68A20E44  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\Qt5Core.dll
009CB14A  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\Qt5Widgets.dll
02E7DB60  
009CE5E0  C:\Users\0216000533\Desktop\ROMC_V1.01.04\ROMC\Qt5Widgets.dll


D:\Qt\Qt5.5.1\5.5\mingw492_32>cd /d D:\Qt\Qt5.5.1\Tools\mingw492_32\bin

D:\Qt\Qt5.5.1\Tools\mingw492_32\bin>addr2line.exe -f -e C:\Users\0216000533\Desk
top\ROMC_V1.01.04\ROMC\ROMCC.exe 005C589D 00439836 0040A0CE 0050B80F 0050BECD 00
407114 005C01AC 005BCC47
??
fake:?
??
cygming-crtbegin.c:?
??
cygming-crtbegin.c:?
??
moc_crealtimereport.cpp:?
??
moc_cremotecontrol.cpp:?
??
cygming-crtbegin.c:?
??
fake:?
??
fake:?
离线newworker

只看该作者 9楼 发表于: 2021-12-27
我这边试了debug版本可以定位到源码,但是release版本好像不能定位到源码,版主这边测试可以,是release版本下也可以吗,版主在release模式下有啥方法吗?
快速回复
限100 字节
 
上一个 下一个