summaryrefslogtreecommitdiff
path: root/indra/llcommon/llerror.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2018-08-02 16:15:34 -0400
committerNat Goodspeed <nat@lindenlab.com>2018-08-02 16:15:34 -0400
commit67955043306bddcb22cee706415fe702807e1a30 (patch)
treed13e4ea862af00dbb78dbed4468eb78a03eff28b /indra/llcommon/llerror.cpp
parent09f97172bb478a2c977d8b7b0958196e7e98c433 (diff)
parentf1eb3c1b63b97de2a91c967e5c66f7b25c4963a2 (diff)
Automated merge with ssh://bitbucket.org/lindenlab/viewer-release
Diffstat (limited to 'indra/llcommon/llerror.cpp')
-rw-r--r--indra/llcommon/llerror.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 29de79dc64..64b957b188 100644
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -367,6 +367,7 @@ namespace
public:
std::ostringstream messageStream;
bool messageStreamInUse;
+ std::string mFatalMessage;
void addCallSite(LLError::CallSite&);
void invalidateCallSites();
@@ -660,11 +661,16 @@ namespace LLError
s->mCrashFunction = f;
}
- FatalFunction getFatalFunction()
- {
+ FatalFunction getFatalFunction()
+ {
SettingsConfigPtr s = Settings::getInstance()->getSettingsConfig();
- return s->mCrashFunction;
- }
+ return s->mCrashFunction;
+ }
+
+ std::string getFatalMessage()
+ {
+ return Globals::getInstance()->mFatalMessage;
+ }
void setTimeFunction(TimeFunction f)
{
@@ -1184,7 +1190,7 @@ namespace LLError
{
writeToRecorders(site, "error", true, true, true, false, false);
}
-
+
std::ostringstream message_stream;
if (site.mPrintOnce)
@@ -1209,14 +1215,19 @@ namespace LLError
s->mUniqueLogMessages[message] = 1;
}
}
-
+
message_stream << message;
-
- writeToRecorders(site, message_stream.str());
-
- if (site.mLevel == LEVEL_ERROR && s->mCrashFunction)
+ std::string message_line(message_stream.str());
+
+ writeToRecorders(site, message_line);
+
+ if (site.mLevel == LEVEL_ERROR)
{
- s->mCrashFunction(message_stream.str());
+ g->mFatalMessage = message_line;
+ if (s->mCrashFunction)
+ {
+ s->mCrashFunction(message_line);
+ }
}
}
}