| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/msw/crashrpt.h
 
- // Purpose:     helpers for the structured exception handling (SEH) under Win32
 
- // Author:      Vadim Zeitlin
 
- // Modified by:
 
- // Created:     13.07.2003
 
- // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_MSW_CRASHRPT_H_
 
- #define _WX_MSW_CRASHRPT_H_
 
- #include "wx/defs.h"
 
- #if wxUSE_CRASHREPORT
 
- struct _EXCEPTION_POINTERS;
 
- // ----------------------------------------------------------------------------
 
- // crash report generation flags
 
- // ----------------------------------------------------------------------------
 
- enum
 
- {
 
-     // we always report where the crash occurred
 
-     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 with the current implementation it requires dumping the full
 
-     // process address space and so this will result in huge dump file and will
 
-     // take some time to generate
 
-     //
 
-     // it's probably not a good idea to use this by default, start with default
 
-     // mini dump and ask your users to set WX_CRASH_FLAGS environment variable
 
-     // to 2 or 4 if you need more information in the dump
 
-     wxCRASH_REPORT_LOCALS = 2,
 
-     // if this flag is given, the values of all global variables are dumped
 
-     //
 
-     // this creates a much larger mini dump than just wxCRASH_REPORT_STACK but
 
-     // still much smaller than wxCRASH_REPORT_LOCALS one
 
-     wxCRASH_REPORT_GLOBALS = 4,
 
-     // default is to create the smallest possible crash report
 
-     wxCRASH_REPORT_DEFAULT = wxCRASH_REPORT_LOCATION | wxCRASH_REPORT_STACK
 
- };
 
- // ----------------------------------------------------------------------------
 
- // wxCrashContext: information about the crash context
 
- // ----------------------------------------------------------------------------
 
- struct WXDLLIMPEXP_BASE wxCrashContext
 
- {
 
-     // initialize this object with the given information or from the current
 
-     // global exception info which is only valid inside wxApp::OnFatalException
 
-     wxCrashContext(_EXCEPTION_POINTERS *ep = NULL);
 
-     // get the name for this exception code
 
-     wxString GetExceptionString() const;
 
-     // exception code
 
-     size_t code;
 
-     // exception address
 
-     void *addr;
 
-     // machine-specific registers vaues
 
-     struct
 
-     {
 
- #ifdef __INTEL__
 
-         wxInt32 eax, ebx, ecx, edx, esi, edi,
 
-                 ebp, esp, eip,
 
-                 cs, ds, es, fs, gs, ss,
 
-                 flags;
 
- #endif // __INTEL__
 
-     } regs;
 
- };
 
- // ----------------------------------------------------------------------------
 
- // 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 wxString& filename);
 
-     // return the current file name
 
-     static wxString GetFileName();
 
-     // write the exception report to the file, return true if it could be done
 
-     // or false otherwise
 
-     //
 
-     // if ep pointer is NULL, the global exception info which is valid only
 
-     // inside wxApp::OnFatalException() is used
 
-     static bool Generate(int flags = wxCRASH_REPORT_DEFAULT,
 
-                          _EXCEPTION_POINTERS *ep = NULL);
 
-     // generate a crash report from outside of wxApp::OnFatalException(), this
 
-     // can be used to take "snapshots" of the program in wxApp::OnAssert() for
 
-     // example
 
-     static bool GenerateNow(int flags = wxCRASH_REPORT_DEFAULT);
 
- };
 
- #endif // wxUSE_CRASHREPORT
 
- #endif // _WX_MSW_CRASHRPT_H_
 
 
  |