Qt程序异常崩溃信息捕获处理-DbgHelp

.pro

#release版本可调试
QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
#release版也将生成“.pdb”后缀的调试信息文件
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG
#调用库
LIBS += -lDbgHelp
#include <DbgHelp.h>
#include <QString>
#include <QMessageBox>
#include <QDateTime>
//程式异常捕获
LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
    //创建 Dump 文件
    QString str =QDateTime::currentDateTime().toString("yyyyMMdd")+ QTime::currentTime().toString("HHmmsszzz") + ".dmp";
    HANDLE hDumpFile = CreateFile(str.utf16(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if( hDumpFile != INVALID_HANDLE_VALUE){
        //Dump信息
        MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
        dumpInfo.ExceptionPointers = pException;
        dumpInfo.ThreadId = GetCurrentThreadId();
        dumpInfo.ClientPointers = TRUE;
        //写入Dump文件内容
        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
    }
    //这里弹出一个错误对话框并退出程序
    EXCEPTION_RECORD* record = pException->ExceptionRecord;
    QString errCode(QString::number(record->ExceptionCode,16)),errAdr(QString::number((uint)record->ExceptionAddress,16)),errMod;
    QMessageBox::critical(NULL,"程式崩溃","<FONT size=4><div><b>对于发生的错误,表示诚挚的歉意</b><br/></div>"+
                          QString("<div>错误代码:%1</div><div>错误地址:%2</div></FONT>").arg(errCode).arg(errAdr),
                          QMessageBox::Ok);
    return EXCEPTION_EXECUTE_HANDLER;
}

————————————————
版权声明:本文为CSDN博主「Mars-C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cqq1993/article/details/116293253

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: dbghelp.lib是Windows操作系统中的一个库文件,主要用于调试程序时获取信息和生成dump文件。它提供了一组API函数,可以帮助开发人员获取程序崩溃异常时的调试信息,包括堆栈信息、模块信息、符号信息等。 使用dbghelp.lib库文件可以让开发人员更方便地进行调试和分析程序故障。在开发过程中,当程序发生错误时,可以使用dbghelp.lib库文件生成dump文件,通过分析dump文件,可以定位程序故障的具体位置和原因,从而进行问题排查和修复。 除此之外,dbghelp.lib库文件还可用于生成符号文件,方便开发人员进行远程调试和分析,特别是在多人协作或远程开发的场景中,使用dbghelp.lib库文件可以提高开发效率并降低故障排查的难度。 总之,dbghelp.lib是Windows操作系统中一个非常重要的库文件,它提供了丰富的调试和分析工具,能够帮助开发人员有效地解决程序故障和优化程序性能。 ### 回答2: dbghelp.lib是微软的调试辅助库,用于在Windows操作系统下有效地进行调试。这个库包含了一系列的函数,包括解析堆栈信息、读取程序符号表等调试辅助功能。开发人员可以使用这些函数,实现程序运行过程中的调试,识别程序中的问题,并提高代码的质量。在使用Visual Studio等开发工具进行程序开发时,dbghelp.lib是常用的调试工具之一。此外,它还广泛用于一些大型软件系统的开发,包括操作系统、数据库、游戏引擎等。尽管dbghelp.lib不是必需的,但使用它可以极大地加速程序调试过程,并提高开发人员的工作效率。因此,对于任何需要在Windows平台上进行调试的开发人员,掌握dbghelp.lib的使用是非常有益的。 ### 回答3: dbghelp.lib是微软开发的一个库文件,用于应用程序的调试和错误处理。它提供了一些函数和结构体,可以帮助开发人员诊断和解决应用程序崩溃异常和内存泄漏等问题。 这个库文件通常与Microsoft Windows调试器(WinDbg)一起使用。它可以帮助开发人员在调试过程中获取有关应用程序崩溃的详细信息,包括堆栈跟踪、调用堆栈和内存转储等。使用dbghelp.lib库文件,开发人员能够更轻松地解决应用程序出现的各种问题,提高开发效率。 除了应用程序的调试和错误处理外,dbghelp.lib还可以用于创建一些高级的调试功能,例如符号表的生成和管理、堆栈跟踪、平台特定的调试信息和各种调试工具的支持等。 总之,dbghelp.lib是一个非常有用的库文件,可以帮助开发人员快速定位和解决应用程序中的各种错误和异常,提高了应用程序的质量和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值