qt程序release版在Windows运行崩溃。使用dump文件+vs2022进行解析+豆包

这段代码是全局捕捉崩溃信息,生成crash.dump

复制代码
#include <Windows.h>
#include <DbgHelp.h>#pragma comment(lib,"Dbghelp.lib")LONG WINAPI CrashDumpHandler(_EXCEPTION_POINTERS* pException){    HANDLE hFile = CreateFileA("crash.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);    if(hFile != INVALID_HANDLE_VALUE)    {        MINIDUMP_EXCEPTION_INFORMATION expInfo;        expInfo.ThreadId = GetCurrentThreadId();        expInfo.ExceptionPointers = pException; // 正确:从异常参数拿,不手动调用API        expInfo.ClientPointers = FALSE;        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &expInfo, nullptr, nullptr);        CloseHandle(hFile);    }    return EXCEPTION_EXECUTE_HANDLER;}// main函数最开头调用int main(int argc, char *argv[]){    SetUnhandledExceptionFilter(CrashDumpHandler); // 全局崩溃钩子    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}

这短代码放在pro里面,生成pdb符号

javascript 复制代码
CONFIG += debug_and_release
QMAKE_CXXFLAGS_RELEASE += /Zi
QMAKE_LFLAGS_RELEASE += /DEBUG
QMAKE_LFLAGS_RELEASE += /OPT:REF /OPT:ICF

pdb符号表记录了代码及函数,调试的时候,会直接告诉你崩溃的是哪一行,哪个函数

1.双击crash.dump,点击右侧

Debug with Navtive Only

然后就会是这个样子

把这张图交给豆包就行

相关推荐
时间的拾荒人37 分钟前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
MayZork1 小时前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
半杯咖啡半行码4 小时前
Qt 开发基础:版本演进、常用工具与多平台安装
开发语言·qt
qq_401700419 小时前
Qt Signal Mapper:一堆按钮,怎么共用一个槽函数
开发语言·qt
Python图像识别10 小时前
35-【2027毕设】YOLO11中草药检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Lhan.zzZ10 小时前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf
Quz21 小时前
QML 动画选择:GIF与Lottie 的区别,以及 Qt 6.8 与 6.11 的 Lottie 实现差异
qt
时间的拾荒人1 天前
Qt 界面美化实战:QSS 样式表
开发语言·qt·面试
qq_401700411 天前
Qt 串口/网口通信:Hex 与 ASCII 编码转换深度指南
开发语言·数据库·qt
Python图像识别1 天前
30-【2027毕设】YOLO11管道缺陷检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计