summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2024-01-03 22:57:28 +0200
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2024-01-04 21:13:06 +0200
commit51088cde7f5a0bdaf9249bfdd5d31b9b212403ab (patch)
tree9ce6bfdfca3321b7beed6049ab246e0685b4428d /indra/newview/llviewermenu.cpp
parent096156d16ce0461c173b1bd925a97e7c41a042e5 (diff)
SL-17896 Don't crash silently if files are missing or out of memory
Under debug LL_ERRS will show a message as well, but release won't show anything and will quit silently so show a notification when applicable.
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r--indra/newview/llviewermenu.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 007e3440b9..90066b205e 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -289,6 +289,7 @@ void handle_disconnect_viewer(void *);
void force_error_breakpoint(void *);
void force_error_llerror(void *);
+void force_error_llerror_msg(void*);
void force_error_bad_memory_access(void *);
void force_error_infinite_loop(void *);
void force_error_software_exception(void *);
@@ -2372,6 +2373,15 @@ class LLAdvancedForceErrorLlerror : public view_listener_t
}
};
+class LLAdvancedForceErrorLlerrorMsg: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_error_llerror_msg(NULL);
+ return true;
+ }
+};
+
class LLAdvancedForceErrorBadMemoryAccess : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -8384,6 +8394,11 @@ void force_error_llerror(void *)
LLAppViewer::instance()->forceErrorLLError();
}
+void force_error_llerror_msg(void*)
+{
+ LLAppViewer::instance()->forceErrorLLErrorMsg();
+}
+
void force_error_bad_memory_access(void *)
{
LLAppViewer::instance()->forceErrorBadMemoryAccess();
@@ -9622,6 +9637,7 @@ void initialize_menus()
// Advanced > Debugging
view_listener_t::addMenu(new LLAdvancedForceErrorBreakpoint(), "Advanced.ForceErrorBreakpoint");
view_listener_t::addMenu(new LLAdvancedForceErrorLlerror(), "Advanced.ForceErrorLlerror");
+ view_listener_t::addMenu(new LLAdvancedForceErrorLlerrorMsg(), "Advanced.ForceErrorLlerrorMsg");
view_listener_t::addMenu(new LLAdvancedForceErrorBadMemoryAccess(), "Advanced.ForceErrorBadMemoryAccess");
view_listener_t::addMenu(new LLAdvancedForceErrorBadMemoryAccessCoro(), "Advanced.ForceErrorBadMemoryAccessCoro");
view_listener_t::addMenu(new LLAdvancedForceErrorInfiniteLoop(), "Advanced.ForceErrorInfiniteLoop");