summaryrefslogtreecommitdiff
path: root/indra/llcommon/llerror.cpp
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2023-10-26 10:01:52 +0800
committerErik Kundiman <erik@megapahit.org>2023-10-26 10:01:52 +0800
commit281ca5330e5e1b46268a0bea68af1cdb4270d512 (patch)
tree16d00c08fe3484bdd6f2e376efeadda340e1c582 /indra/llcommon/llerror.cpp
parent92fedbc11e2d69bd51660e24956984cf2503ec71 (diff)
parent3ecce24f9f1a930f9765920a2818e5f5081d696c (diff)
Merge remote-tracking branch 'secondlife/DRTVWR-559' into DRTVWR-559
Diffstat (limited to 'indra/llcommon/llerror.cpp')
-rw-r--r--indra/llcommon/llerror.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index eaf1be60f2..414515854a 100644
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -1603,5 +1603,18 @@ namespace LLError
}
}
-
-
+void crashdriver(void (*callback)(int*))
+{
+ // The LLERROR_CRASH macro used to have inline code of the form:
+ //int* make_me_crash = NULL;
+ //*make_me_crash = 0;
+
+ // But compilers are getting smart enough to recognize that, so we must
+ // assign to an address supplied by a separate source file. We could do
+ // the assignment here in crashdriver() -- but then BugSplat would group
+ // all LL_ERRS() crashes as the fault of this one function, instead of
+ // identifying the specific LL_ERRS() source line. So instead, do the
+ // assignment in a lambda in the caller's source. We just provide the
+ // nullptr target.
+ callback(nullptr);
+}