码迷,mamicode.com
首页 > 其他好文 > 详细

程序崩溃处理

时间:2015-09-15 14:37:31      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

SetErrorMode() 函数控制 Windows 是否处理 指定类型的严重错误或使调用应用程序来处理它们。


  1. #include <Dbghelp.h>
  2. #include <stdio.h>
  3. #include <time.h>
  4. #pragma comment(lib,"Dbghelp.lib")
  5. LONG WINAPI ExpFilter(struct _EXCEPTION_POINTERS *pExp)
  6. {
  7. time_t now;
  8. time(&now);
  9. char name[100] = { 0 };
  10. sprintf_s(name, "%d.dmp", now);
  11. HANDLE hFile = CreateFileA( name,GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  12. if (INVALID_HANDLE_VALUE != hFile)
  13. {
  14. MINIDUMP_EXCEPTION_INFORMATION einfo;
  15. einfo.ThreadId = ::GetCurrentThreadId();
  16. einfo.ExceptionPointers = pExp;
  17. einfo.ClientPointers = FALSE;
  18. ::MiniDumpWriteDump(
  19. ::GetCurrentProcess(),
  20. ::GetCurrentProcessId(),
  21. hFile,
  22. MiniDumpWithFullMemory,
  23. &einfo,
  24. NULL,
  25. NULL);
  26. ::CloseHandle(hFile);
  27. }
  28. return EXCEPTION_EXECUTE_HANDLER;
  29. }
  30. long __stdcall ExpFilter1(_EXCEPTION_POINTERS* excp)
  31. {
  32. char buf[1024] = { 0 };
  33. sprintf_s(buf, "ExceptionAddress %x \n NumberParameters %x \n ExceptionCode %x \n",
  34. excp->ExceptionRecord->ExceptionAddress
  35. , excp->ExceptionRecord->NumberParameters
  36. , excp->ExceptionRecord->ExceptionCode);
  37. MessageBox(0, buf, "error", MB_OK);
  38. return EXCEPTION_EXECUTE_HANDLER;
  39. }

SetUnhandledExceptionFilter(ExpFilter); 

 




程序崩溃处理

标签:

原文地址:http://www.cnblogs.com/wxf101/p/4810150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!