使用 WinDbg 分析dump文件

步骤一:

  生成dump文件。

#include   
#include   
#include 
#include 
using namespace std;

#pragma comment(lib, "dbghelp.lib")

LONG WINAPI TopLevelExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionInfo)    
{  
    cout << "Enter TopLevelExceptionFilter Function" << endl;    
    HANDLE hFile = CreateFile( _T("project.dmp"),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);  //创建dmp文件
    MINIDUMP_EXCEPTION_INFORMATION stExceptionParam;    
    stExceptionParam.ThreadId    = GetCurrentThreadId();    
    stExceptionParam.ExceptionPointers = pExceptionInfo;    
    stExceptionParam.ClientPointers    = FALSE;    
    MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),hFile,MiniDumpWithFullMemory,&stExceptionParam,NULL,NULL);  //写dmp文件
    CloseHandle(hFile);    
    getchar();  
    return EXCEPTION_EXECUTE_HANDLER;  
}  

int main()  
{  
    cout<<"Enter Main Function"<

 

  1. 把dbghelp.dll 放置在生成的exe路径下:

    使用 WinDbg 分析dump文件_第1张图片

  2. 执行exe,生成dmp文件:

    使用 WinDbg 分析dump文件_第2张图片

 

步骤二:

  使用 WinDbg 分析 dmp 文件。

  1.安装WinDbg

  2.设置WinDbg

    a.设置符号表路径:

      使用 WinDbg 分析dump文件_第3张图片

      使用 WinDbg 分析dump文件_第4张图片

    b.设置源代码路径:

      使用 WinDbg 分析dump文件_第5张图片

       使用 WinDbg 分析dump文件_第6张图片

    c.dmp文件导入:

      使用 WinDbg 分析dump文件_第7张图片

      使用 WinDbg 分析dump文件_第8张图片

 

    d.使用命令:!analyze -v 分析dmp文件:

      

      使用 WinDbg 分析dump文件_第9张图片

      

转载于:https://www.cnblogs.com/SZxiaochun/p/7404665.html

你可能感兴趣的:(使用 WinDbg 分析dump文件)