From 339075864e73da96b4effdc148795d3e7d09f945 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Fri, 10 Aug 2007 19:42:58 +0000 Subject: [PATCH] Add a stack-and-abort value of XPCOM_DEBUG_BREAK git-svn-id: svn://10.0.0.236/trunk@231837 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/base/nsDebugImpl.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mozilla/xpcom/base/nsDebugImpl.cpp b/mozilla/xpcom/base/nsDebugImpl.cpp index 367281809d6..6c7a7f3576a 100644 --- a/mozilla/xpcom/base/nsDebugImpl.cpp +++ b/mozilla/xpcom/base/nsDebugImpl.cpp @@ -182,7 +182,8 @@ enum nsAssertBehavior { NS_ASSERT_SUSPEND, NS_ASSERT_STACK, NS_ASSERT_TRAP, - NS_ASSERT_ABORT + NS_ASSERT_ABORT, + NS_ASSERT_STACK_AND_ABORT }; static nsAssertBehavior GetAssertBehavior() @@ -216,6 +217,9 @@ static nsAssertBehavior GetAssertBehavior() if (!strcmp(assertString, "trap") || !strcmp(assertString, "break")) return gAssertBehavior = NS_ASSERT_TRAP; + if (!strcmp(assertString, "stack-and-abort")) + return gAssertBehavior = NS_ASSERT_STACK_AND_ABORT; + fprintf(stderr, "Unrecognized value of XPCOM_DEBUG_BREAK\n"); return gAssertBehavior; } @@ -342,6 +346,10 @@ NS_DebugBreak(PRUint32 aSeverity, const char *aStr, const char *aExpr, nsTraceRefcntImpl::WalkTheStack(stderr); return; + case NS_ASSERT_STACK_AND_ABORT: + nsTraceRefcntImpl::WalkTheStack(stderr); + // Fall through to abort + case NS_ASSERT_ABORT: Abort(buf.buffer); return;