vs中配置qt项目生成dump文件,或者c++项目

  lib配置: 项目-->属性-->配置属性-->链接器-->输入-->附加依赖项 增加dbghelp.lib

添加链接器后,在main.cpp添加内容

// 产生一个故意的崩溃--
    int* p = nullptr;
    *p = 0; // 访问违规
    return 0;
//用于测试,生成dmp文件

 

#include <windows.h>
#include <DbgHelp.h>
#include <iostream>


#include "AutxxxoPacxxxkSyxxstem.h"
#include <QtWidgets/QApplication>



LONG WINAPI MyUnhandledExceptionFilter(EXCEPTION_POINTERS* pExceptionInfo) {
    HANDLE hFile = CreateFile(L"txwdebug.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile != INVALID_HANDLE_VALUE) {
        MINIDUMP_EXCEPTION_INFORMATION mdei;
        mdei.ThreadId = GetCurrentThreadId();
        mdei.ExceptionPointers = pExceptionInfo;
        mdei.ClientPointers = FALSE;

        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &mdei, NULL, NULL);
        CloseHandle(hFile);
    }
    return EXCEPTION_EXECUTE_HANDLER;
}

 
int main(int argc, char *argv[])
{
    SymInitialize(GetCurrentProcess(), NULL, TRUE);
    SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
    // 产生一个故意的崩溃
    int* p = nullptr;
    *p = 0; // 访问违规
    return 0;


    QApplication a(argc, argv);
    AutoxxxPacxxxkSystem w;
    w.show();
    return a.exec();
}

用vs打开txwdebug.dmp文件。

 

即可自动定位到问题位置

 

 

 

qt creator环境配置方法参考:

https://www.cnblogs.com/txwtech/p/18819685

https://www.cnblogs.com/a9999/p/6823651.html

posted @ 2025-04-11 08:41  txwtech  阅读(100)  评论(0)    收藏  举报