mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-01 08:29:27 +02:00
Add alpha-build-only crash-me buttons, for testing of crash reporting
This commit is contained in:
parent
87652aff23
commit
d28554189d
@ -360,6 +360,31 @@ void OnCrashReport(const CommandContext &WXUNUSED(context) )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IS_ALPHA
|
||||||
|
void OnSegfault(const CommandContext &)
|
||||||
|
{
|
||||||
|
unsigned *p = nullptr;
|
||||||
|
*p = 0xDEADBEEF;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnException(const CommandContext &)
|
||||||
|
{
|
||||||
|
// Throw an exception that can be caught only as (...)
|
||||||
|
// The intent is to exercise detection of unhandled exceptions by the
|
||||||
|
// crash reporter
|
||||||
|
struct Unique{};
|
||||||
|
throw Unique{};
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnAssertion(const CommandContext &)
|
||||||
|
{
|
||||||
|
// We don't use assert() much directly, but Breakpad does detect it
|
||||||
|
// This may crash the program only in debug builds
|
||||||
|
// See also wxSetAssertHandler, and wxApp::OnAssertFailure()
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void OnMenuTree(const CommandContext &context)
|
void OnMenuTree(const CommandContext &context)
|
||||||
{
|
{
|
||||||
auto &project = context.project;
|
auto &project = context.project;
|
||||||
@ -523,13 +548,25 @@ BaseItemSharedPtr HelpMenu()
|
|||||||
FN(OnCrashReport), AlwaysEnabledFlag )
|
FN(OnCrashReport), AlwaysEnabledFlag )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IS_ALPHA
|
#ifdef IS_ALPHA
|
||||||
,
|
,
|
||||||
|
// alpha-only items don't need to internationalize, so use
|
||||||
|
// Verbatim for labels
|
||||||
|
|
||||||
|
Command( wxT("RaiseSegfault"), Verbatim("Test segfault report"),
|
||||||
|
FN(OnSegfault), AlwaysEnabledFlag ),
|
||||||
|
|
||||||
|
Command( wxT("ThrowException"), Verbatim("Test exception report"),
|
||||||
|
FN(OnException), AlwaysEnabledFlag ),
|
||||||
|
|
||||||
|
Command( wxT("ViolateAssertion"), Verbatim("Test assertion report"),
|
||||||
|
FN(OnAssertion), AlwaysEnabledFlag ),
|
||||||
|
|
||||||
// Menu explorer. Perhaps this should become a macro command
|
// Menu explorer. Perhaps this should become a macro command
|
||||||
Command( wxT("MenuTree"), XXO("Menu Tree..."),
|
Command( wxT("MenuTree"), Verbatim("Menu Tree..."),
|
||||||
FN(OnMenuTree),
|
FN(OnMenuTree),
|
||||||
AlwaysEnabledFlag )
|
AlwaysEnabledFlag )
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
#ifndef __WXMAC__
|
#ifndef __WXMAC__
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user