zoukankan      html  css  js  c++  java
  • dbghelp.dll 定位异常奔溃信息

     
    dbghelp.dll是一种调试跟踪相关模块,用于跟踪进程工作,在进程崩溃时收集程序产生异常时的堆栈信息,
    以供开发人员分析,从而快速找到程序出现异常的原因。它的提供商是Microsoft。Windows 自带的这个文
    件,位于C:WindowsSystem32 下。
     
    需要的文件如下:
    Dbghelp.h
    dbghelp.lib
    dbghelp.dll
    使用示例:
     1 LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionPointers)
     2 {
     3        //先创建dump文件
     4        HANDLE lhDumpFile = CreateFileA("xxx.dmp", GENERIC_WRITE, 0, NULL,
     5               CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
     6        MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo;
     7        loExceptionInfo.ExceptionPointers = pExceptionPointers;
     8        loExceptionInfo.ThreadId = GetCurrentThreadId();
     9        loExceptionInfo.ClientPointers = TRUE;
    10        int nDumpType = MiniDumpNormal | MiniDumpWithDataSegs | MiniDumpWithFullMemory |
    11               MiniDumpWithThreadInfo | MiniDumpWithHandleData | MiniDumpWithUnloadedModules;
    12        //写dump文件
    13        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), lhDumpFile, (MINIDUMP_TYPE)nDumpType, &loExceptionInfo, NULL, NULL);
    14        CloseHandle(lhDumpFile);
    15        return EXCEPTION_EXECUTE_HANDLER;
    16 }
    17 
    18 int main(int argc, char** argv)
    19 {      
    20        SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
    21        ......
    22        ......
    23        return 0;
    24 }
    定位异常需要以下三个文件:
    xxx.dmp
    xxx.exe
    xxx.pdb
    用visual stdio 打开.dmp文件,可以观察到异常的位置
    用visual stdio 打开.dmp文件
  • 相关阅读:
    《Java入门第三季》第一章 异常与异常处理
    c++第三十一天
    《Java入门第二季》第五章 阶段练习
    《Java入门第二季》第四章 多态
    《Java入门第二季》第三章 继承
    WinForm 使用皮肤,且单击按更换皮肤。
    ExecuteReader: CommandText 属性尚未初始化
    用户登录模块--代码
    abstract 关键字-- 抽象
    Winform TabControl控件使用
  • 原文地址:https://www.cnblogs.com/briskzou/p/12154212.html
Copyright © 2011-2022 走看看