added GenerateNow()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-01-17 02:04:06 +00:00
parent b059b79da7
commit 47e94dedd9
2 changed files with 28 additions and 3 deletions

View File

@@ -48,7 +48,10 @@ enum
// //
// this creates a much larger mini dump than just wxCRASH_REPORT_STACK but // this creates a much larger mini dump than just wxCRASH_REPORT_STACK but
// still much smaller than wxCRASH_REPORT_LOCALS one // still much smaller than wxCRASH_REPORT_LOCALS one
wxCRASH_REPORT_GLOBALS = 4 wxCRASH_REPORT_GLOBALS = 4,
// default is to create the smallest possible crash report
wxCRASH_REPORT_DEFAULT = wxCRASH_REPORT_LOCATION | wxCRASH_REPORT_STACK
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -101,10 +104,14 @@ struct WXDLLIMPEXP_BASE wxCrashReport
// //
// if ep pointer is NULL, the global exception info which is valid only // if ep pointer is NULL, the global exception info which is valid only
// inside wxApp::OnFatalException() is used // inside wxApp::OnFatalException() is used
static bool Generate(int flags = wxCRASH_REPORT_LOCATION | static bool Generate(int flags = wxCRASH_REPORT_DEFAULT,
wxCRASH_REPORT_STACK,
_EXCEPTION_POINTERS *ep = NULL); _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 // wxUSE_CRASHREPORT

View File

@@ -255,6 +255,24 @@ bool wxCrashReport::Generate(int flags, EXCEPTION_POINTERS *ep)
return impl.Generate(flags, ep); return impl.Generate(flags, ep);
} }
/* static */
bool wxCrashReport::GenerateNow(int flags)
{
bool rc = false;
__try
{
RaiseException(0x1976, 0, 0, NULL);
}
__except( rc = Generate(flags, (EXCEPTION_POINTERS *)GetExceptionInformation()),
EXCEPTION_CONTINUE_EXECUTION )
{
// never executed because of EXCEPTION_CONTINUE_EXECUTION above
}
return rc;
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxCrashContext // wxCrashContext
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------