在Windows程序发生异常时,可以在异常处理代码中保存dump文件,或者是在开发者认为代码异常时,可以在程序退出时,保存dump文件,主要调用的是Windows的API函数MiniDumpWriteDump
代码可以写成这样,可以按照自己的应用场景增加其它处理逻辑。
const char* file_path = “C:\error.dump";
HANDLE process = ::GetCurrentProcess();
DWORD process_id = ::GetCurrentProcessId();
HANDLE dump_file = ::CreateFile(file_path , GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (dump_file != INVALID_HANDLE_VALUE)
{
::MiniDumpWriteDump(process,process_id,dump_file, MiniDumpNormal,NULL,NULL,NULL);
::CloseHandle(dump_file);
}