一、创作背景
最近测试部的同事进行反馈,某个使用QT编译的软件在持续测试时出现了闪退现象,虽然我写了log过程日志,但由于是多线程测试,我还是无法准确地定位bug的位置,于是想到了Visual Studio中的dump异常处理机制。dump机制可以捕获未处理的异常,结合.pdb文件可以直接定位到出错的代码位置,非常的好用!经过几天的百度和尝试,终于实现了mingw编译器下的dump机制使用!
二、使用环境
QT版本:QT6.2.4
编译器 :MinGW 11.2.0 64-bit
辅助工具:Visual Studio 2022(.dmp文件解析)、cv2pdb.exe(.pbd文件生成)
三、机制搭建
1.在QT工程的main.cpp添加如下黄色代码。此段代码主要用来生成.dmp文件(SetUnhandledExceptionFilter一定要写在show函数之后,否则会被QT的消息捕捉机制覆盖,从而失效)