DMP文件的生成和使用
来源:互联网 发布:淘宝怎么买病假条 编辑:程序博客网 时间:2024/05/22 12:59
主要函数: MiniDumpWriteDump
代码示例:
#include <stdio.h>
#include <windows.h>
#include <dbghelp.h>
#pragma comment(lib, "Dbghelp.lib")
LONG WINAPI MyUnhandledFilter(struct _EXCEPTION_POINTERS *lpExceptionInfo)
{
LONG ret = EXCEPTION_EXECUTE_HANDLER;
TCHAR szFileName[64];
SYSTEMTIME st;
::GetLocalTime(&st);
wsprintf(szFileName, TEXT("%04d-%02d-%02d-%02d-%02d-%02d-%02d-%02d.dmp"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, rand()%100);
HANDLE hFile = ::CreateFile(szFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if (hFile != INVALID_HANDLE_VALUE)
{
MINIDUMP_EXCEPTION_INFORMATION ExInfo;
ExInfo.ThreadId = ::GetCurrentThreadId();
ExInfo.ExceptionPointers = lpExceptionInfo;
ExInfo.ClientPointers = false;
// write the dump
BOOL bOK = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );
if (bOK)
{
printf("Create Dump File Success!\n");
}
else
{
printf("MiniDumpWriteDump Failed: %d\n", GetLastError());
}
::CloseHandle(hFile);
}
else
{
printf("Create File %s Failed %d\n", szFileName, GetLastError());
}
return ret;
}
int main()
{
::SetUnhandledExceptionFilter(MyUnhandledFilter);
int a = 0;
int b = 2;
int c = b/a;
return 0;
}
使用:
把dmp文件和exe, pdb文件放在同一目录下, 然后用编译器(如vc)打开, 然后开始调试就会中断到刚才中断的地方.
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- minidump-DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- dmp 文件的使用
- windows的dmp文件使用
- oracle数据库的导入dmp文件和导出dmp文件
- DMP文件的生成和使用(转),由于须要取得用户出现问题的信息,所以须要取得demp信息,可以通过本方法获取。
- dmp 文件的导入和导出
- SQL进行排序、分组、统计的10个新技巧
- 深度探索C++对象模型之:理解虚函数机制
- SQL查询入门(上篇)
- 虚拟打印机驱动开发——ImagePrinter(一)
- 汉字转换成拼音首字母
- DMP文件的生成和使用
- SQL查询入门(中篇)
- 反编译
- 查看日志
- SQL查询入门(下篇)
- 互联网将成为全球“第五大经济体”
- log4j学习
- j2ee隐式对象
- ubuntu10.04 LTS安装中文输入法(ibus)和开机自动启动ibus应用