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
telepan5 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
小灰灰搞电子5 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化5 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
m0_695251495 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
小小龙学IT12 小时前
Qt 元对象系统(Meta-Object System)深度解析:从 MOC 到反射式编程
数据库·qt
小王C语言13 小时前
QT 基础:QT SDK 下载、配置、新建项目、项目代码解释
开发语言·qt
张人玉17 小时前
基于 Python + PyQt5 的水果目标检测与分割可视化系统——水果深度学习识别可视化大屏
python·深度学习·qt·目标检测·sqlite·echarts
程与留1 天前
12_常用控件速查(下):QSpinBox、QSlider、QProgressBar、QCheckBox
c++·qt
秋田君2 天前
QT_HTTP协议编程
qt·http·iphone