added GenerateNow()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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
|
||||||
|
@@ -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
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user