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

然后就会是这个样子

把这张图交给豆包就行

相关推荐
实心儿儿5 小时前
Qt — 信号和槽
qt
江湖人称菠萝包6 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图
笔记·qt·qt5
西西弗Sisyphus7 小时前
Qt 实现一个 水波进度球
c++·qt·c
RAN114267600820 小时前
1.3第一个程序的介绍
开发语言·qt
实心儿儿1 天前
Qt — 命名方式、坐标系
qt
小小龙学IT1 天前
Qt QPainter 2D 绘图系统深度解析:从画笔到渲染引擎适
c++·qt
深兰科技1 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
实心儿儿1 天前
Qt — 对象树
qt
Quz2 天前
QML Repeater 数据模型:ListModel 与 C++ QAbstractListModel
qt
Quz2 天前
QML Repeater 基础用法:整数、JS 数组、字符串数组三种模型
qt