summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2016-08-26 15:56:47 -0400
committerNat Goodspeed <nat@lindenlab.com>2016-08-26 15:56:47 -0400
commit4c41b1d8ac041834b37fbd956f646749ac4c0325 (patch)
tree2c200b187c0a430ef0fc3debb3329e5f5040e40e /indra
parentc2c3086d6c153883a43664446ac3f05a11a61a96 (diff)
MAINT-5011: Add top-level exception handlers in LLAppViewer::frame().
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llappviewer.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 766c807169..0c758d73a1 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1537,10 +1537,14 @@ bool LLAppViewer::frame()
resumeMainloopTimeout();
pingMainloopTimeout("Main:End");
- }
+ }
+ }
+ catch (const LLContinueError&)
+ {
+ LOG_UNHANDLED_EXCEPTION("");
}
catch(std::bad_alloc)
- {
+ {
LLMemory::logMemoryInfo(TRUE) ;
//stop memory leaking simulation
@@ -1548,7 +1552,7 @@ bool LLAppViewer::frame()
LLFloaterReg::findTypedInstance<LLFloaterMemLeak>("mem_leaking");
if(mem_leak_instance)
{
- mem_leak_instance->stop() ;
+ mem_leak_instance->stop() ;
LL_WARNS() << "Bad memory allocation in LLAppViewer::frame()!" << LL_ENDL ;
}
else
@@ -1559,6 +1563,10 @@ bool LLAppViewer::frame()
LL_ERRS() << "Bad memory allocation in LLAppViewer::frame()!" << LL_ENDL ;
}
}
+ catch (...)
+ {
+ CRASH_ON_UNHANDLED_EXCEPTION("");
+ }
if (LLApp::isExiting())
{
@@ -1572,7 +1580,7 @@ bool LLAppViewer::frame()
catch(std::bad_alloc)
{
LL_WARNS() << "Bad memory allocation when saveFinalSnapshot() is called!" << LL_ENDL ;
-
+
//stop memory leaking simulation
LLFloaterMemLeak* mem_leak_instance =
LLFloaterReg::findTypedInstance<LLFloaterMemLeak>("mem_leaking");
@@ -1581,12 +1589,16 @@ bool LLAppViewer::frame()
mem_leak_instance->stop() ;
}
}
+ catch (...)
+ {
+ CRASH_ON_UNHANDLED_EXCEPTION("saveFinalSnapshot()");
+ }
}
-
+
delete gServicePump;
-
+
destroyMainloopTimeout();
-
+
LL_INFOS() << "Exiting main_loop" << LL_ENDL;
}