summaryrefslogtreecommitdiff
path: root/indra/llcommon/llerror.cpp
diff options
context:
space:
mode:
authorCinder Roxley <cinder.roxley@phoenixviewer.com>2013-06-27 21:35:23 -0600
committerCinder Roxley <cinder.roxley@phoenixviewer.com>2013-06-27 21:35:23 -0600
commit35b27d558caa8a719e6648e0bf3129629c1cc5fa (patch)
tree6a1d20ad270bd7df3141e91ec9ba0ff0a080a6fc /indra/llcommon/llerror.cpp
parent38c1cd2d29fa48b1a28a6ba1d7ef49ae00c9a5e0 (diff)
parent6060e5e46acbeb20a301070a0fd0efea029d33d0 (diff)
Merged lindenlab/viewer-release into default
Diffstat (limited to 'indra/llcommon/llerror.cpp')
-rwxr-xr-x[-rw-r--r--]indra/llcommon/llerror.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 9b0141eb76..d2af004cde 100644..100755
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -201,10 +201,7 @@ namespace {
virtual void recordMessage(LLError::ELevel level,
const std::string& message)
{
- llutf16string utf16str =
- wstring_to_utf16str(utf8str_to_wstring(message));
- utf16str += '\n';
- OutputDebugString(utf16str.c_str());
+ LL_WINDOWS_OUTPUT_DEBUG(message);
}
};
#endif
@@ -1401,5 +1398,27 @@ namespace LLError
{
sIndex = 0 ;
}
+
+#if LL_WINDOWS
+ void LLOutputDebugUTF8(const std::string& s)
+ {
+ // Be careful when calling OutputDebugString as it throws DBG_PRINTEXCEPTION_C
+ // which works just fine under the windows debugger, but can cause users who
+ // have enabled SEHOP exception chain validation to crash due to interactions
+ // between the Win 32-bit exception handling and boost coroutine fiber stacks. BUG-2707
+ //
+ if (IsDebuggerPresent())
+ {
+ // Need UTF16 for Unicode OutputDebugString
+ //
+ if (s.size())
+ {
+ OutputDebugString(utf8str_to_utf16str(s).c_str());
+ OutputDebugString(TEXT("\n"));
+ }
+ }
+ }
+#endif
+
}