zoukankan      html  css  js  c++  java
  • vc/vs开发的应用程序添加dump崩溃日志<转>

    原贴地址:https://blog.csdn.net/wangkui1331/article/details/78029940

    vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很难追踪,但是添加dump文件后,就可以免除这些烦恼

    1.添加方法

    (1)添加头文件

    #include <imagehlp.h>
    #pragma comment(lib, "DbgHelp.lib")

    (2)在InitInstance()函数中添加:

    //抓捕异常文件
    ::SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ExceptionCrashHandler);  //cash代码

    其中ExceptionCrashHandler是自自己添加的回调函数,代码如下:

    //抓捕异常信息
    LONG ExceptionCrashHandler(EXCEPTION_POINTERS *pException)  
    {     
        // 创建Dump文件
        HANDLE hDumpFile = CreateFileW(L"Exception.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        // Dump信息
        MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
        dumpInfo.ExceptionPointers = pException;
        dumpInfo.ThreadId = GetCurrentThreadId();
        dumpInfo.ClientPointers = TRUE;
        // 写入Dump文件内容
        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
        CloseHandle(hDumpFile);
        return EXCEPTION_EXECUTE_HANDLER;  
    }

    崩溃时会在exe所在目录生成Exception.dmp文件


    2.调试方法
    调试时需要的文件包括:exe文件,dump文件,还有编译生成对应exe的pdb文件(这就需要提前保存好对应版本的pdb文件,否则提示pdb文件不匹配),保证它们在同一目录下,用vs2010打开dump文件(安装了vs2010的双击dump即可自动打开),按下图操作即可


  • 相关阅读:
    MFC通过ODBC连接Mysql程序
    MFC下DLL编程(图解)
    INI文件的写入与读取
    如何在MFC中启动其它的(.exe)可执行文件
    [VC++]用CTime类得到当前日期、时间、星期,格式化(详细讲解)
    OutputDebugString输出调试信息到debugtrack
    MFC添加背景图片三种方法
    在MFC对话框中添加状态栏
    MFC 窗体背景图片设置
    MFC实现为窗体添加的背景图片
  • 原文地址:https://www.cnblogs.com/wainiwann/p/9969280.html
Copyright © 2011-2022 走看看