Windows Dump
Writing a Minidump with Code
The actual implementation is straightforward. The following is a simple example of how to use MiniDumpWriteDump.
#include <dbghelp.h>
#include <shellapi.h>
#include <shlobj.h>
int GenerateDump(EXCEPTION_POINTERS* pExceptionPointers)
{
    BOOL bMiniDumpSuccessful;
    WCHAR szPath[MAX_PATH]; 
    WCHAR szFileName[MAX_PATH]; 
    WCHAR* szAppName = L"AppName";
    WCHAR* szVersion = L"v1.0";
    DWORD dwBufferSize = MAX_PATH;
    HANDLE hDumpFile;
    SYSTEMTIME stLocalTime;
    MINIDUMP_EXCEPTION_INFORMATION ExpParam;
    GetLocalTime( &stLocalTime );
    GetTempPath( dwBufferSize, szPath );
    StringCchPrintf( szFileName, MAX_PATH, L"%s%s", szPath, szAppName );
    CreateDirectory( szFileName, NULL );
    StringCchPrintf( szFileName, MAX_PATH, L"%s%s\\%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp", 
               szPath, szAppName, szVersion, 
               stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay, 
               stLocalTime.wHour, stLocalTime.wMinute, stLocalTime.wSecond, 
               GetCurrentProcessId(), GetCurrentThreadId());
    hDumpFile = CreateFile(szFileName, GENERIC_READ|GENERIC_WRITE, 
                FILE_SHARE_WRITE|FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
    ExpParam.ThreadId = GetCurrentThreadId();
    ExpParam.ExceptionPointers = pExceptionPointers;
    ExpParam.ClientPointers = TRUE;
    bMiniDumpSuccessful = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), 
                    hDumpFile, MiniDumpWithDataSegs, &ExpParam, NULL, NULL);
    return EXCEPTION_EXECUTE_HANDLER;
}
void SomeFunction()
{
    __try
    {
        int *pBadPtr = NULL;
        *pBadPtr = 0;
    }
    __except(GenerateDump(GetExceptionInformation()))
    {
    }
}
Category
See also
Favorite site
- MSDN: Using Dump Files
- 키보드 입력으로 메모리 덤프 생성하는 방법
- Windows 기능을 사용하여 메모리 덤프 파일을 키보드로 생성 가능
- Windows 메모리 덤프 개요와 설정 방법
- 윈도우 7 메모리 덤프 생성 과정 변경
- jkmoon.tistory.com - 메모리 덤프 설정
- 자신의 심볼을 이용하기 : 소스서버를 이용한 소스인덱싱
- 메모리 덤프(Memory dump) 분석하기 2
- Windows Dump 파일 분석하기
- MSDN: Windows에서 디버깅을 위해 만든 작은 메모리 덤프 파일을 읽는 방법
- 윈도우 7 메모리 덤프 생성 과정 변경
- Debugging Tips (7) - Application Memory Dump 분석하기 (part 2)
- Visual Studio 로 디버깅하는 방법(Dump, pdb 파일이용)
- Slideshare - 덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012