/////////////////////////////////////////////////////////////////////////////// // Name: wx/msw/crashrpt.h // Purpose: helpers for the structured exception handling (SEH) under Win32 // Author: Vadim Zeitlin // Modified by: // Created: 13.07.2003 // RCS-ID: $Id$ // Copyright: (c) 2003 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_MSW_SEH_H_ #define _WX_MSW_SEH_H_ #include "wx/defs.h" #if wxUSE_ON_FATAL_EXCEPTION // ---------------------------------------------------------------------------- // report generation flags // ---------------------------------------------------------------------------- enum { // we always report where the crash occured wxCRASH_REPORT_LOCATION = 0, // if this flag is given, the call stack is dumped // // this results in dump/crash report as small as possible, this is the // default flag wxCRASH_REPORT_STACK = 1, // if this flag is given, the values of the local variables are dumped // // note that this will result in huge file containing the dump of the // entire process memory space when using mini dumps! wxCRASH_REPORT_LOCALS = 2, // if this flag is given, the values of all global variables are dumped // // this creates a much larger mini dump and also takes more time to // generate if our own crash reporting code is used wxCRASH_REPORT_GLOBALS = 4 }; // ---------------------------------------------------------------------------- // wxCrashReport: this class is used to create crash reports // ---------------------------------------------------------------------------- struct WXDLLIMPEXP_BASE wxCrashReport { // set the name of the file to which the report is written, it is // constructed from the .exe name by default static void SetFileName(const wxChar *filename); // return the current file name static const wxChar *GetFileName(); // write the exception report to the file, return true if it could be done // or false otherwise static bool Generate(int flags = wxCRASH_REPORT_LOCATION | wxCRASH_REPORT_STACK); }; #endif // wxUSE_ON_FATAL_EXCEPTION #endif // _WX_MSW_SEH_H_