csutil/win32/minidump.h
Go to the documentation of this file.00001 /* 00002 Copyright (C) 2004 by Jorrit Tyberghein 00003 (C) 2004 by Frank Richter 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public 00016 License along with this library; if not, write to the Free 00017 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 */ 00019 00024 #include "csutil/ref.h" 00025 #include "csutil/weakref.h" 00026 #include "iutil/objreg.h" 00027 00028 #include "csutil/win32/DbgHelpAPI.h" 00029 00038 class CS_CRYSTALSPACE_EXPORT cswinMinidumpWriter 00039 { 00040 public: 00045 typedef void (*FnCrashMinidumpHandler) (const char* dumpFile); 00046 protected: 00047 static csWeakRef<iObjectRegistry> object_reg; 00048 static FnCrashMinidumpHandler customHandler; 00049 00050 static LPTOP_LEVEL_EXCEPTION_FILTER oldFilter; 00051 static LONG WINAPI ExceptionFilter ( 00052 struct _EXCEPTION_POINTERS* ExceptionInfo); 00053 public: 00059 static const char* WriteMinidump ( 00060 PMINIDUMP_EXCEPTION_INFORMATION except = 0, bool dumpHeap = false); 00061 00068 static const char* WriteWrappedMinidump (iObjectRegistry* object_reg = 0, 00069 PMINIDUMP_EXCEPTION_INFORMATION except = 0, bool dumpHeap = false); 00070 00077 static void EnableCrashMinidumps (FnCrashMinidumpHandler handler = 0); 00084 static void SetCrashMinidumpObjectReg (iObjectRegistry* object_reg); 00088 static void DisableCrashMinidumps (); 00089 }; 00090
Generated for Crystal Space by doxygen 1.4.7