From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1873) id 6B120395B452; Mon, 19 Apr 2021 18:07:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6B120395B452 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Iain Buclaw To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/ibuclaw/heads/darwin)] Darwin D : Disable backtraces for Darwin for now. X-Act-Checkin: gcc X-Git-Author: Iain Sandoe X-Git-Refname: refs/users/ibuclaw/heads/darwin X-Git-Oldrev: 499f1ca6c1e2524686a961dbbfbd61326772067e X-Git-Newrev: 2cd92ac53716e5b2ffd0b2e8a7a1ddc48e2ecbf7 Message-Id: <20210419180704.6B120395B452@sourceware.org> Date: Mon, 19 Apr 2021 18:07:04 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2021 18:07:04 -0000 https://gcc.gnu.org/g:2cd92ac53716e5b2ffd0b2e8a7a1ddc48e2ecbf7 commit 2cd92ac53716e5b2ffd0b2e8a7a1ddc48e2ecbf7 Author: Iain Sandoe Date: Sat Dec 19 13:21:46 2020 +0000 Darwin D : Disable backtraces for Darwin for now. It seems that there is some fault in the handling of these that causes the process to spin if the backtrace is attempted in most cases. Diff: --- libphobos/libdruntime/core/runtime.d | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libphobos/libdruntime/core/runtime.d b/libphobos/libdruntime/core/runtime.d index 848b607ae69..508cc0fc563 100644 --- a/libphobos/libdruntime/core/runtime.d +++ b/libphobos/libdruntime/core/runtime.d @@ -479,6 +479,9 @@ extern (C) bool runModuleUnitTests() static extern (C) void unittestSegvHandler( int signum, siginfo_t* info, void* ptr ) { + version(Darwin) {} + else + { import core.stdc.stdio; fprintf(stderr, "Segmentation fault while running unittests:\n"); fprintf(stderr, "----------------\n"); @@ -497,6 +500,7 @@ extern (C) bool runModuleUnitTests() foreach (size_t i, const(char[]) msg; bt) fprintf(stderr, "%s\n", msg.ptr ? msg.ptr : "???"); + } } sigaction_t action = void; @@ -521,11 +525,15 @@ extern (C) bool runModuleUnitTests() static extern (C) void unittestSegvHandler( int signum, siginfo_t* info, void* ptr ) nothrow { + version(Darwin) {} + else + { static enum MAXFRAMES = 128; void*[MAXFRAMES] callstack; auto numframes = backtrace( callstack.ptr, MAXFRAMES ); backtrace_symbols_fd( callstack.ptr, numframes, 2 ); + } } sigaction_t action = void;