您当前的位置: 首页 >  c++

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

c++ dmp文件生成与分析

鱼儿-1226 发布时间:2021-11-22 16:19:32 ,浏览量:0

1.dmp文件生成实现代码

头文件

#include 
#include 

线程函数

复制代码

LONG _stdcall ApplicationCrashHandler(PEXCEPTION_POINTERS pException)
{
    CreateDumpFile(_T("test.dmp"),pException);
    FatalAppExit(-1, _T("***Unhandled Exception!***"));
    return EXCEPTION_EXECUTE_HANDLER;
}

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

void CreateDumpFile(LPCTSTR lpstrDumpFilePathName, EXCEPTION_POINTERS* pException)

{

    HANDLE  hDumpFile = CreateFile(lpstrDumpFilePathName,GENERIC_READ | GENERIC_WRITE,

        FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

    if ((hDumpFile != NULL) && (hDumpFile != INVALID_HANDLE_VALUE))

    {

        MINIDUMP_EXCEPTION_INFORMATION dumpInfo;

        dumpInfo.ThreadId = GetCurrentThreadId();

        dumpInfo.ExceptionPointers = pException;

        dumpInfo.ClientPointers = TRUE;

        ::MiniDumpWriteDump(::GetCurrentProcess(), ::GetCurrentProcessId(), hDumpFile, MiniDumpNormal,

            &dumpInfo, NULL, NULL);

    }

     

        CloseHandle(hDumpFile);

}

  

在dialog初始化中调用函数ApplicationCrashHandler(PEXCEPTION_POINTERS pException)

复制代码

BOOL CCutton_DlgDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
 
    // 将“关于...”菜单项添加到系统菜单中。
 
    // TODO: 在此添加额外的初始化代码
    SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);
    
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

复制代码

2. 工程配置

3.dmp文件分析

生成的dmp文件必须与之前的pdb文件相对应,双击dmp文件,利用vs打开

关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.0395s