diff options
| author | Monty Brandenberg <monty@lindenlab.com> | 2013-07-18 18:43:58 -0400 |
|---|---|---|
| committer | Monty Brandenberg <monty@lindenlab.com> | 2013-07-18 18:43:58 -0400 |
| commit | 38b3da4a20a0a06396d240a5e8fdc4fa11866937 (patch) | |
| tree | 90613c999899253eb28caf04641b5ee41d827958 /indra/llcommon/llerror.cpp | |
| parent | d027db3cfc7c757cc8846e1a5187d1a816f63d9a (diff) | |
| parent | 6060e5e46acbeb20a301070a0fd0efea029d33d0 (diff) | |
Merge. Refresh from viewer-release.
Diffstat (limited to 'indra/llcommon/llerror.cpp')
| -rwxr-xr-x | indra/llcommon/llerror.cpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 9b0141eb76..d2af004cde 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 + } |
