summaryrefslogtreecommitdiff
path: root/indra/llcommon/llcoros.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2025-02-26 15:58:18 +0200
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-02-26 21:50:46 +0200
commit454d5b48715772889db12d142486e75a3a4dfed3 (patch)
treea936780de50b4a6d97d83083b433f3326ddb5dd3 /indra/llcommon/llcoros.cpp
parent056dc00ebe07ba5994a51c7b4eb38d887d4b9355 (diff)
#3591 Reprot SEH directly to bugsplat
Rethrowing SEH via std::exception results ina callstack that ends at rethrow.
Diffstat (limited to 'indra/llcommon/llcoros.cpp')
-rw-r--r--indra/llcommon/llcoros.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index 1539b48bd3..ab56a3d3b7 100644
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -310,18 +310,20 @@ namespace
static const U32 STATUS_MSC_EXCEPTION = 0xE06D7363; // compiler specific
-U32 exception_filter(U32 code, struct _EXCEPTION_POINTERS *exception_infop)
+U32 exception_filter(U32 code, struct _EXCEPTION_POINTERS* exception_infop)
{
if (code == STATUS_MSC_EXCEPTION)
{
// C++ exception, go on
return EXCEPTION_CONTINUE_SEARCH;
}
- else
+ else if (!LLApp::instance()->reportCrashToBugsplat((void*)exception_infop))
{
// handle it
return EXCEPTION_EXECUTE_HANDLER;
}
+
+ return EXCEPTION_CONTINUE_SEARCH;
}
void sehandle(const LLCoros::callable_t& callable)