zoukankan      html  css  js  c++  java
  • vs2010 dump 调试

    1)exception_handler.h

    #pragma once
    #include <dbghelp.h>   
    #include <shellapi.h>   
    #include <shlobj.h>
    
    #pragma comment( lib, "DbgHelp")
    
    static LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS* ExceptionInfo)
    {
        HANDLE lhDumpFile = CreateFile(L"DumpFile.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
        MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo;
        loExceptionInfo.ExceptionPointers = ExceptionInfo;
        loExceptionInfo.ThreadId = GetCurrentThreadId();
        loExceptionInfo.ClientPointers = TRUE;
    
        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),lhDumpFile, MiniDumpNormal, &loExceptionInfo, NULL, NULL);
    
        CloseHandle(lhDumpFile);
    
        ::ShellExecuteW(NULL, NULL, L"BugReport.exe", NULL, NULL, SW_NORMAL);
    
        return EXCEPTION_EXECUTE_HANDLER;
    }

    2) 主程序中包含该头文件, 并在主函数开头调用:

    SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);

    注意, 该头文件尽量放在最前。 【放在后面编译时可能会出dbghelp.h中的各种错误】

    3) 运行。 异常时会生成DumpFile.dmp

    4) vs2010。 直接双击dmp文件会在vs2010中显示dump的summary, 右上方的“操作”栏会出现在本机调试字样。 调试即可。

    【dmp、pdb、exe需放在同一目录下】

    5) bugreport.exe读取本地文件、上传

  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/2997439.html
Copyright © 2011-2022 走看看