WinDbg分析DUMP文件
2015-04-03 20:44
471 查看
1. 如何生成dump文件?
原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件;
SetUnhandledExceptionFilter:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SETUNHANDLEDEXCEPTIONFILTER);k(DevLang-%22C%2B%2B%22)&rd=true
MiniDumpWriteDump:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(MINIDUMPWRITEDUMP);k(DevLang-%22C%2B%2B%22)&rd=true
示例:
#ifndef _DUMP_GENERATE_H_ #define _DUMP_GENERATE_H_ #include <Windows.h> #include <DbgHelp.h> #pragma comment(lib, "DbgHelp.lib") LONG WINAPI MyUnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS *ExceptionInfo); void MyDumpGenerate(); void MyDumpGenerate() { SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); } LONG WINAPI MyUnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS *ExceptionInfo) { MessageBox(0,L"DumpGenerate",0,0); HANDLE lhDumpFile = CreateFile(L"D:\\test.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL); MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo; loExceptionInfo.ExceptionPointers = ExceptionInfo; loExceptionInfo.ThreadId = GetCurrentThreadId(); loExceptionInfo.ClientPointers = TRUE; MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), lhDumpFile, MiniDumpNormal, &loExceptionInfo, NULL, NULL); CloseHandle(lhDumpFile); /* * EXCEPTION_CONTINUE_SEARCH:将异常传给调试器 * EXCEPTION_EXECUTE_HANDLER:不显示错误信息 */ return EXCEPTION_EXECUTE_HANDLER; } #endif // _DUMP_GENERATE_H_ //////////////// // main.cpp int main() { MyDumpGenerate(); int* p = NULL; *p = 1; // 这里异常后,会自动调用MyUnhandledExceptionFilter接口,生成dump文件:test.dmp。 return 0; }
2. 如何使用WinDbg调试dump文件,以test.dmp为例: 2.1 准备步骤: 2.1.1 设置pdb文件路径: 2.1.2 设置源文件路径: 2.1.3 导入/拖入test.dmp文件; 2.2 通过命令(.reload -> ! analyze -v)来分析dump,然后可以定位到如下错误: https://www.geek-share.com/detail/2485240640.html(此文转载,感谢作者的无私奉献) 3. 使用WinDbg调试程序: 待续...
相关文章推荐
- 用WinDbg分析Debug Diagnostic Tool生成的Userdump文件
- Windbg分析托管代码dump文件没有找到相应版本的mscordacwks.dll
- windbg分析dump文件
- WinDbg分析DUMP文件
- 使用WinDBG生成dump文件 WinDBG分析dump文件
- 利用windbg分析dump文件(一)安装与配置
- WinDbg分析DUMP文件
- windbg分析dump文件
- windbg分析BSOD dump文件实战
- windbg分析dump文件
- 利用windbg分析dump文件(一)安装与配置
- 使用windbg分析Mini-dump文件(转)
- 利用windbg分析dump文件
- windbg分析dump文件
- windbg打开分析dump文件
- 用WinDbg分析Dump文件,转自WinDbg帮助文件
- 如何用windbg分析64位机上32位程序的dump文件
- 利用windbg分析dump文件
- 如何用windbg分析64位机上32位程序的dump文件
- WinDbg分析dump文件介绍