Qt下MSVC/Mingw平台dump/crash log报告调试方法差异
Qt下MSVC/Mingw平台dump/crash log报告调试方法差异
原文链接:https://blog.csdn.net/dgj8300/java/article/details/78450638
经过测试发现,对于MSVC/mingw平台的log到处方法有所不同,下面来介绍下2个平台构建的差异和方法:
1.MSVC
使用平台:MSV2015
1.第一步:编译构建是添加以下
"CONFIG+=force_debug_info" "CONFIG+=separate_debug_info"
这样编译以后可生成*.pdb文件
将dump文件和*.pdb及map文件放在同目录下,使用vs2015打开dump文件既可以定位到dump代码行。
2.Mingw
使用平台:mingw530
mingw平台下,目前只在windows下测试过,但是无法精确定位到代码行,方法如下:
1.首先由于mingw平台下便有不支持生产pdb文件,所以无法直接使用VS来调试dump文件,但是我们可以通过cv2pdb来转换,具体转换在另外文档中详细讲解。
同时,qt工程在编译mingw-release版本时,在pro中需要加上一下配置:
#加入调试信息 QMAKE_CFLAGS_RELEASE += -g QMAKE_CXXFLAGS_RELEASE += -g #禁止优化 QMAKE_CFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE -= -O2 #release在最后link时默认有"-s”参数,表示"Omit all symbol information from the output file",因此要去掉该参数 QMAKE_LFLAGS_RELEASE = -mthreads -Wl
这样编译出来的exe程序可以被cv2pdb工具转换出来。
上面说了mingw平台上虽然可以导出pdb文件,但是还是无法精确的定位到代码行,所以这个方法也没多大作用,但是不要放弃,还有google的神器:BreakPad
通过dump_syms.exe将pdb转换为sym文件后,在使用minidump_stackwalk.exe来进行分析,同时要注意minidump_stackwalk.exe需要使用在linux下使用BreakPad源码编译才可以分析dump文件。
================= End
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-06-24 C++性能榨汁机之无锁编程
2019-06-24 C++性能榨汁机之虚函数的开销
2019-06-24 C++性能榨汁机之伪共享
2019-06-24 《四重缘起深般若》 和 《心经修正圆通法门》
2018-06-24 linux下模拟CPU占用100%小程序
2018-06-24 Linux SNMP 监控一些常用OID
2018-06-24 SNMP协议介绍