From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7379 invoked by alias); 26 Nov 2019 15:58:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 7363 invoked by uid 89); 26 Nov 2019 15:58:02 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3 autolearn=ham version=3.3.1 spammy= X-HELO: mx1.osci.io Received: from polly.osci.io (HELO mx1.osci.io) (8.43.85.229) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 26 Nov 2019 15:58:00 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id 0DECE203A5; Tue, 26 Nov 2019 10:57:58 -0500 (EST) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id 14CC7201F1; Tue, 26 Nov 2019 10:57:58 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id E7D2220AF6; Tue, 26 Nov 2019 10:57:57 -0500 (EST) X-Gerrit-PatchSet: 4 Date: Tue, 26 Nov 2019 15:58:00 -0000 From: "Pedro Alves (Code Review)" To: Tom Tromey , gdb-patches@sourceware.org Auto-Submitted: auto-generated X-Gerrit-MessageType: comment Subject: [review v4] Introduce thread-safe way to handle SIGSEGV X-Gerrit-Change-Id: Ic832bbb033b64744e4b44f14b41db7e4168ce427 X-Gerrit-Change-Number: 171 X-Gerrit-ChangeURL: X-Gerrit-Commit: e08c3b7a6184ec87420ca078c4711f4e0b5157dc In-Reply-To: References: X-Gerrit-Comment-Date: Tue, 26 Nov 2019 10:57:57 -0500 Reply-To: gnutoolchain-gerrit@osci.io MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Disposition: inline User-Agent: Gerrit/3.0.3-79-g83ff7f88f1 Content-Type: text/plain; charset=UTF-8 Message-Id: <20191126155757.E7D2220AF6@gnutoolchain-gerrit.osci.io> X-SW-Source: 2019-11/txt/msg00866.txt.bz2 Pedro Alves has posted comments on this change. Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/171 ...................................................................... Patch Set 4: Code-Review+2 (2 comments) LGTM, with the nit below fixed. | --- gdb/cp-support.c | +++ gdb/cp-support.c | @@ -1477,17 +1480,17 @@ static bool catch_demangler_crashes = true; | | /* Stack context and environment for demangler crash recovery. */ | | -static SIGJMP_BUF gdb_demangle_jmp_buf; | +static thread_local SIGJMP_BUF *gdb_demangle_jmp_buf; | | /* If nonzero, attempt to dump core from the signal handler. */ | | -static int gdb_demangle_attempt_core_dump = 1; | +static std::atomic gdb_demangle_attempt_core_dump; PS3, Line 1487: > What would be really great is to fuzz the demangler and fix all > the bugs. Then we could ditch all of this code One can dream. :-) | | /* Signal handler for gdb_demangle. */ | | static void | gdb_demangle_signal_handler (int signo) | { | if (gdb_demangle_attempt_core_dump) | { | if (fork () == 0) | --- gdb/cp-support.c | +++ gdb/cp-support.c | @@ -1602,7 +1592,13 @@ #endif | - | - error_reported = 1; | - } | - | - result = NULL; | - } | + /* If there was a failure, we can't report it here, because | + we might be in a background thread. Instead, arrange for | + the reporting to happen on the main thread. */ | + std::string copy = name; PS4, Line 1595: (I thought I had commented on this, but I can't find the comment now.) This explicit copy is unnecessary/redundant, because you're using [=] as capture. As is, you copy the string twice, first into the "std::string copy" local, and then you copy that again in the lambda's capture by value. | + run_on_main_thread ([=] () | + { | + report_failed_demangle (copy.c_str (), core_dump_allowed, | + crash_signal); | + }); | + | + result = NULL; | + } | } -- Gerrit-Project: binutils-gdb Gerrit-Branch: master Gerrit-Change-Id: Ic832bbb033b64744e4b44f14b41db7e4168ce427 Gerrit-Change-Number: 171 Gerrit-PatchSet: 4 Gerrit-Owner: Tom Tromey Gerrit-Reviewer: Pedro Alves Gerrit-Reviewer: Tom Tromey Gerrit-Comment-Date: Tue, 26 Nov 2019 15:57:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: Pedro Alves Comment-In-Reply-To: Tom Tromey Gerrit-MessageType: comment