From patchwork Wed Aug 28 08:20:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 96593 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E7D7F386103F for ; Wed, 28 Aug 2024 08:20:20 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 278D83860772 for ; Wed, 28 Aug 2024 08:19:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 278D83860772 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 278D83860772 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833183; cv=none; b=xBBkDRbUgxlyalGF+OUz6tFYGP7WR+6Xvpzs0z2sMs1aDIY0nE75K/TYsrNj2VQytTqrkI1yxlmi44cnVcv+2SHIzWgnKSdlJwln/TzEVtt53GB2lIVV4K98/Kwm2iN2xHPtDhgvHfTRrSt1Q1JQefiE24UkZdTqOqm4jMEXok8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833183; c=relaxed/simple; bh=qg5K0KC49T1aDAGMQrodA0U2ade2am+tk6Kg2zxvwWE=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=FYdjJwfkzr8CFCXumDBZE6Dd5vFc+rQKdrS0M+z6nFlk0W4QJ5XiNxvZcW1fGBI0gIpQn0PVey8ejCJtkVtVhomWT6IJ03cACEJAhYlXxGjIYtL9zx/grOCXtP9sg86SXNhqd1NIrWy2d7gNLiFvuDNe7XXiuNivDGy6YN0cKQg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9E78F1FBAA for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=OzfUw8V5q7Gy4pZ6qTyrq460qU302vdQ1yv69wEiY8E=; b=HpYyRMQtCTAgo0/JVckV37JGCB+HRnzi0O9BEcOFYloeaKFAcQsGwDoESSGyD4yFlkRLfO 6Yt6VbTT9jIMnnuNWViVQ8Vt07/FJYBZA7PyI4eA7tnqyve/ZWxFVoqIrgzSXwW+2Ai7tn nUGdKtC8g1fQ+QyDj6Z3e8PWim5kHV0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=OzfUw8V5q7Gy4pZ6qTyrq460qU302vdQ1yv69wEiY8E=; b=Hu+lzLmrqghAaTeB64Wey+tGcyDzr22fm7t0wrQm78DTNdFtKfXwUhBSVoITuatMCr4Hv3 FlCZuqF3kuYTpsCA== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=OzfUw8V5q7Gy4pZ6qTyrq460qU302vdQ1yv69wEiY8E=; b=HpYyRMQtCTAgo0/JVckV37JGCB+HRnzi0O9BEcOFYloeaKFAcQsGwDoESSGyD4yFlkRLfO 6Yt6VbTT9jIMnnuNWViVQ8Vt07/FJYBZA7PyI4eA7tnqyve/ZWxFVoqIrgzSXwW+2Ai7tn nUGdKtC8g1fQ+QyDj6Z3e8PWim5kHV0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=OzfUw8V5q7Gy4pZ6qTyrq460qU302vdQ1yv69wEiY8E=; b=Hu+lzLmrqghAaTeB64Wey+tGcyDzr22fm7t0wrQm78DTNdFtKfXwUhBSVoITuatMCr4Hv3 FlCZuqF3kuYTpsCA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8861B138D2 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 16wMH5vdzmarPwAAD6G6ig (envelope-from ) for ; Wed, 28 Aug 2024 08:19:39 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 1/4] [gdb/python] Add gdbpy_handle_gdb_exception Date: Wed, 28 Aug 2024 10:20:44 +0200 Message-Id: <20240828082047.17174-1-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[] X-Spam-Level: X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org I've recently committed two patches: - commit 2f8cd40c37a ("[gdb/python] Use GDB_PY_HANDLE_EXCEPTION more often") - commit fbf8e4c35c2 ("[gdb/python] Use GDB_PY_SET_HANDLE_EXCEPTION more often") which use the macros GDB_PY_HANDLE_EXCEPTION and GDB_PY_SET_HANDLE_EXCEPTION more often, with the goal of making things more consistent. Having done that, I wondered if a better approach could be possible. Consider GDB_PY_HANDLE_EXCEPTION: ... /* Use this in a 'catch' block to convert the exception to a Python exception and return nullptr. */ #define GDB_PY_HANDLE_EXCEPTION(Exception) \ do { \ gdbpy_convert_exception (Exception); \ return nullptr; \ } while (0) ... The macro nicely codifies how python handles exceptions: - setting an error condition using some PyErr_Set* variant, and - returning a value implying that something went wrong presumably with the goal that using the macro will mean not accidentally: - forgetting to return on error, or - returning the wrong value on error. The problems are that: - the macro hides control flow, specifically the return statement, and - the macro hides the return value. For example, when reading somewhere: ... catch (const gdb_exception &except) { GDB_PY_HANDLE_EXCEPTION (except); } ... in order to understand what this does, you have to know that the macro returns, and that it returns nullptr. Add a template gdbpy_handle_gdb_exception: ... template [[nodiscard]] T gdbpy_handle_gdb_exception (T val, const gdb_exception &e) { gdbpy_convert_exception (e); return val; } ... which can be used instead: ... catch (const gdb_exception &except) { return gdbpy_handle_gdb_exception (nullptr, except); } ... [ Initially I tried this: ... template [[nodiscard]] auto gdbpy_handle_gdb_exception (const gdb_exception &e) { gdbpy_convert_exception (e); return val; } ... with which the usage is slightly better looking: ... catch (const gdb_exception &except) { return gdbpy_handle_gdb_exception (except); } ... but I ran into trouble with older gcc compilers. ] While still a single statement, we now have it clear: - that the statement returns, - what value the statement returns. [ FWIW, this could also be handled by say: ... - GDB_PY_HANDLE_EXCEPTION (except); + GDB_PY_HANDLE_EXCEPTION_AND_RETURN_VAL (except, nullptr); ... but I still didn't find the fact that it returns easy to spot. Alternatively, this is the simplest form we could use: ... return gdbpy_convert_exception (e), nullptr; ... but the pairing would not necessarily survive a copy/paste/edit cycle. ] Also note how making the value explicit makes it easier to check for consistency: ... catch (const gdb_exception &except) { return gdbpy_handle_gdb_exception (-1, except); } if (PyErr_Occurred ()) return -1; ... given that we do use the explicit constants almost everywhere else. Compared to using GDB_PY_HANDLE_EXCEPTION, there is the burden now to specify the return value, but I assume that this will be generally copy-pasted and therefore present no problem. Also, there's no longer a guarantee that there's an immediate return, but I assume that nodiscard making sure that the return value is not silently ignored is sufficient mitigation. For now, re-implement GDB_PY_HANDLE_EXCEPTION and GDB_PY_SET_HANDLE_EXCEPTION in terms of gdbpy_handle_gdb_exception. Follow-up patches will eliminate the macros. No functional changes. Tested on x86_64-linux. --- gdb/python/python-internal.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) base-commit: 934fcc7c916ad2876515a099ee09fa40dc08b489 diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index bf3ab67ea74..da357e71e8d 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -934,19 +934,17 @@ class gdbpy_gil /* Use this in a 'catch' block to convert the exception to a Python exception and return nullptr. */ -#define GDB_PY_HANDLE_EXCEPTION(Exception) \ - do { \ - gdbpy_convert_exception (Exception); \ - return nullptr; \ +#define GDB_PY_HANDLE_EXCEPTION(Exception) \ + do { \ + return gdbpy_handle_gdb_exception (nullptr, Exception); \ } while (0) /* Use this in a 'catch' block to convert the exception to a Python exception and return -1. */ -#define GDB_PY_SET_HANDLE_EXCEPTION(Exception) \ - do { \ - gdbpy_convert_exception (Exception); \ - return -1; \ - } while (0) +#define GDB_PY_SET_HANDLE_EXCEPTION(Exception) \ + do { \ + return gdbpy_handle_gdb_exception (-1, Exception); \ + } while (0) int gdbpy_print_python_errors_p (void); void gdbpy_print_stack (void); @@ -1013,6 +1011,18 @@ extern PyObject *gdbpy_gdberror_exc; extern void gdbpy_convert_exception (const struct gdb_exception &) CPYCHECKER_SETS_EXCEPTION; + /* Use this in a 'catch' block to convert the exception E to a Python + exception and return value VAL to signal that an exception occurred. + Typically at the use site, that value will be returned immediately. */ + +template +[[nodiscard]] T +gdbpy_handle_gdb_exception (T val, const gdb_exception &e) +{ + gdbpy_convert_exception (e); + return val; +} + int get_addr_from_python (PyObject *obj, CORE_ADDR *addr) CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION; From patchwork Wed Aug 28 08:20:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 96595 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 790BF3861031 for ; Wed, 28 Aug 2024 08:20:30 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 8BAA73860C3B for ; Wed, 28 Aug 2024 08:19:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8BAA73860C3B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8BAA73860C3B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; cv=none; b=kZBYLZ7HwpJScELNVurunsOrjf5s6QQDj8do/P5E/mODGaqNvdUdqfmT+jFDALdmkj+w4yDAnIx/qv51kB+9oId42yJErQxuw4GVISeBXwQqI5e2iC0vq2D/hpkxi2HambE+zHFV3z5PVIujsVFvsNkX6LxRmGae8FVeQusxzkE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; c=relaxed/simple; bh=ycninTK0NbS37IjzGIpATUosJxGHPo4XqnjMwt7IBzg=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=JH6Pc997oqMhxdDI5N5HbnjWSOeyuv05r1ulRsGgnYzUw6GewVlB0bm4G5qpo1Xi981+mFJ5A++uwHAtXWs+vFoVJIZisHFBnX5NVbf4DQL0FYJHbZeKk0jFUbEzsoU5coJLHnUnr58sDy52xHOKTkoeCV4dWYHE5uPk1VDH4rw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id CA9DA21201 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xLuoKBT4psJ8CoxDn6XWA48AoLX4k4MqR34HPQzSey8=; b=xYMhrVQyEa9x/AdQ2CoKxoRg/HV0ippE4+m5ero+4krykzpl91FSYqkD0OgIX7lRUNqLAa Ofyd3y3z0Jmlu0nFAVoFyJnIBmWW6086/Q8ofzKtUuRCF9enwx8NG58e2F1w2J/fL+XLvW 8pp8N+I4i/bn3bXclyYAeIafUrYGGd4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xLuoKBT4psJ8CoxDn6XWA48AoLX4k4MqR34HPQzSey8=; b=nM/HrvWAuhGF7SMsNNGu2EH+It6TOH7q4wWNckowIF4nH7Prn45935r39ZYBhc3v1m8ZpN xBgmaoN15vgGNaBw== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=jwoDj6ea; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=7WLN9HdR DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xLuoKBT4psJ8CoxDn6XWA48AoLX4k4MqR34HPQzSey8=; b=jwoDj6ea922WEHQoSYd7+GVxAwnEHAW/GYklKzzBTZ1J2ZZCkPEs5lOOwdANr1lVxC12Ei HaHwn8ko4QqloFeeF1k9BrebzSxuZMNS2mzvpAWgs5X2z37ph6g9pUlxu148ATz7GzNpC/ zAUWU1MANmMAPqeCaPeP7X8zlFXg/Xs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xLuoKBT4psJ8CoxDn6XWA48AoLX4k4MqR34HPQzSey8=; b=7WLN9HdREyOIAEcQEMZ4x0Cq9zq56UmsLFq3GJa7QRiFBn590sXCNXacq5GUROTLTXD6kO xbGb7xzOwCQm9XDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A48CD139D5 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id SCvyJpvdzmarPwAAD6G6ig (envelope-from ) for ; Wed, 28 Aug 2024 08:19:39 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 2/4] [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION Date: Wed, 28 Aug 2024 10:20:45 +0200 Message-Id: <20240828082047.17174-2-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828082047.17174-1-tdevries@suse.de> References: <20240828082047.17174-1-tdevries@suse.de> MIME-Version: 1.0 X-Rspamd-Queue-Id: CA9DA21201 X-Spam-Level: X-Spamd-Result: default: False [-5.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]; RCVD_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -5.01 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org Result of: ... $ search="GDB_PY_HANDLE_EXCEPTION (" $ replace="return gdbpy_handle_gdb_exception (nullptr, " $ sed -i \ "s/$search/$replace/" \ gdb/python/*.c ... Also remove the now unused GDB_PY_HANDLE_EXCEPTION. No functional changes. Tested on x86_64-linux. --- gdb/python/py-arch.c | 2 +- gdb/python/py-breakpoint.c | 4 +-- gdb/python/py-connection.c | 2 +- gdb/python/py-disasm.c | 6 ++-- gdb/python/py-frame.c | 42 ++++++++++++------------ gdb/python/py-gdb-readline.c | 2 +- gdb/python/py-inferior.c | 10 +++--- gdb/python/py-infthread.c | 8 ++--- gdb/python/py-lazy-string.c | 4 +-- gdb/python/py-linetable.c | 2 +- gdb/python/py-mi.c | 2 +- gdb/python/py-objfile.c | 8 ++--- gdb/python/py-progspace.c | 4 +-- gdb/python/py-record-btrace.c | 8 ++--- gdb/python/py-record.c | 4 +-- gdb/python/py-stopevent.c | 2 +- gdb/python/py-symbol.c | 14 ++++---- gdb/python/py-tui.c | 2 +- gdb/python/py-type.c | 40 +++++++++++------------ gdb/python/py-unwind.c | 22 ++++++------- gdb/python/py-value.c | 60 +++++++++++++++++------------------ gdb/python/python-internal.h | 7 ---- gdb/python/python.c | 10 +++--- 23 files changed, 129 insertions(+), 136 deletions(-) diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c index 178efab4cee..6ff96736c86 100644 --- a/gdb/python/py-arch.c +++ b/gdb/python/py-arch.c @@ -199,7 +199,7 @@ archpy_disassemble (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } gdbpy_ref<> pc_obj = gdb_py_object_from_ulongest (pc); diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 013c3fadabf..8de6a858941 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -443,7 +443,7 @@ bppy_delete_breakpoint (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -640,7 +640,7 @@ bppy_get_commands (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return host_string_to_python_string (stb.c_str ()).release (); diff --git a/gdb/python/py-connection.c b/gdb/python/py-connection.c index 79e27677442..ca5fa41f9be 100644 --- a/gdb/python/py-connection.c +++ b/gdb/python/py-connection.c @@ -431,7 +431,7 @@ connpy_send_packet (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c index 9b9b509748d..a6ad8c26b38 100644 --- a/gdb/python/py-disasm.c +++ b/gdb/python/py-disasm.c @@ -595,7 +595,7 @@ disasmpy_builtin_disassemble (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (!str.empty ()) PyErr_SetString (gdbpy_gdberror_exc, str.c_str ()); @@ -933,7 +933,7 @@ disasmpy_result_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_Decode (str.c_str (), str.size (), @@ -1512,7 +1512,7 @@ disasmpy_addr_part_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_Decode (str.c_str (), str.size (), diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index 7f617fa5cea..099fb91cacd 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -115,7 +115,7 @@ frapy_is_valid (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (frame == NULL) @@ -143,7 +143,7 @@ frapy_name (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (name) @@ -177,7 +177,7 @@ frapy_type (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return gdb_py_object_from_longest (type).release (); @@ -198,7 +198,7 @@ frapy_arch (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return gdbarch_to_arch_object (obj->gdbarch); @@ -219,7 +219,7 @@ frapy_unwind_stop_reason (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } stop_reason = get_frame_unwind_stop_reason (frame); @@ -244,7 +244,7 @@ frapy_pc (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return gdb_py_object_from_ulongest (pc).release (); @@ -286,7 +286,7 @@ frapy_read_register (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -308,7 +308,7 @@ frapy_block (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } for (fn_block = block; @@ -347,7 +347,7 @@ frapy_function (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (sym) @@ -389,7 +389,7 @@ frame_info_to_frame_object (const frame_info_ptr &frame) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return (PyObject *) frame_obj.release (); @@ -413,7 +413,7 @@ frapy_older (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (prev) @@ -445,7 +445,7 @@ frapy_newer (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (next) @@ -477,7 +477,7 @@ frapy_find_sal (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return sal_obj; @@ -537,7 +537,7 @@ frapy_read_var (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (!var) @@ -567,7 +567,7 @@ frapy_read_var (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -588,7 +588,7 @@ frapy_select (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -609,7 +609,7 @@ frapy_level (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -632,7 +632,7 @@ frapy_language (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -653,7 +653,7 @@ frapy_static_link (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (link == nullptr) @@ -676,7 +676,7 @@ gdbpy_newest_frame (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return frame_info_to_frame_object (frame); @@ -696,7 +696,7 @@ gdbpy_selected_frame (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return frame_info_to_frame_object (frame); diff --git a/gdb/python/py-gdb-readline.c b/gdb/python/py-gdb-readline.c index 14a76b4fa13..dd0ee45fe2e 100644 --- a/gdb/python/py-gdb-readline.c +++ b/gdb/python/py-gdb-readline.c @@ -59,7 +59,7 @@ gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout, /* This readline callback is called without the GIL held. */ gdbpy_gil gil; - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } /* Detect EOF (Ctrl-D). */ diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index ccc3e881702..b2eb6d4a87a 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -412,7 +412,7 @@ infpy_threads (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } tuple = PyTuple_New (inf_obj->threads->size ()); @@ -578,7 +578,7 @@ infpy_read_memory (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } @@ -633,7 +633,7 @@ infpy_write_memory (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &ex) { - GDB_PY_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (nullptr, ex); } Py_RETURN_NONE; @@ -707,7 +707,7 @@ infpy_search_memory (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &ex) { - GDB_PY_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (nullptr, ex); } if (found) @@ -783,7 +783,7 @@ infpy_thread_from_thread_handle (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c index a17f25ed498..895c3c088ef 100644 --- a/gdb/python/py-infthread.c +++ b/gdb/python/py-infthread.c @@ -104,7 +104,7 @@ thpy_get_details (PyObject *self, void *ignore) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (extra_info == nullptr) Py_RETURN_NONE; @@ -212,7 +212,7 @@ thpy_get_ptid_string (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } @@ -245,7 +245,7 @@ thpy_switch (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -330,7 +330,7 @@ thpy_thread_handle (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (hv.size () == 0) diff --git a/gdb/python/py-lazy-string.c b/gdb/python/py-lazy-string.c index 8779716c4b9..284de6b8a19 100644 --- a/gdb/python/py-lazy-string.c +++ b/gdb/python/py-lazy-string.c @@ -148,7 +148,7 @@ stpy_convert_to_value (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -315,7 +315,7 @@ stpy_str (PyObject *self) } catch (const gdb_exception &exc) { - GDB_PY_HANDLE_EXCEPTION (exc); + return gdbpy_handle_gdb_exception (nullptr, exc); } return host_string_to_python_string (stream.c_str ()).release (); diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c index e3e71f9e436..e64acae9e9f 100644 --- a/gdb/python/py-linetable.c +++ b/gdb/python/py-linetable.c @@ -169,7 +169,7 @@ ltpy_get_pcs_for_line (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return build_line_table_tuple_from_pcs (py_line, pcs); diff --git a/gdb/python/py-mi.c b/gdb/python/py-mi.c index 0a636543f9a..632de104ea0 100644 --- a/gdb/python/py-mi.c +++ b/gdb/python/py-mi.c @@ -168,7 +168,7 @@ gdbpy_execute_mi_command (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return uiout.result ().release (); diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c index 6e8d5b57692..0eed0e77592 100644 --- a/gdb/python/py-objfile.c +++ b/gdb/python/py-objfile.c @@ -162,7 +162,7 @@ objfpy_get_build_id (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (build_id != NULL) @@ -453,7 +453,7 @@ objfpy_add_separate_debug_file (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -488,7 +488,7 @@ objfpy_lookup_global_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -523,7 +523,7 @@ objfpy_lookup_static_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index 5bc0015d728..897724f2289 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -522,7 +522,7 @@ pspy_block_for_pc (PyObject *o, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (cust == NULL || cust->objfile () == NULL) @@ -564,7 +564,7 @@ pspy_find_pc_line (PyObject *o, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c index 30d0e8305db..606ddbbab8b 100644 --- a/gdb/python/py-record-btrace.c +++ b/gdb/python/py-record-btrace.c @@ -217,7 +217,7 @@ recpy_bt_insn_sal (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -288,7 +288,7 @@ recpy_bt_insn_data (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } object = PyBytes_FromStringAndSize ((const char *) buffer.data (), @@ -318,7 +318,7 @@ recpy_bt_insn_decoded (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyBytes_FromString (strfile.string ().c_str ()); @@ -943,7 +943,7 @@ recpy_bt_goto (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/py-record.c b/gdb/python/py-record.c index 759bf3049cb..7add2ffa132 100644 --- a/gdb/python/py-record.c +++ b/gdb/python/py-record.c @@ -681,7 +681,7 @@ gdbpy_start_recording (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } @@ -713,7 +713,7 @@ gdbpy_stop_recording (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/py-stopevent.c b/gdb/python/py-stopevent.c index 47f81bd6c9a..485bbb177d5 100644 --- a/gdb/python/py-stopevent.c +++ b/gdb/python/py-stopevent.c @@ -74,7 +74,7 @@ py_print_bpstat (bpstat *bs, enum gdb_signal stop_signal) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } gdbpy_ref<> dict = uiout.result (); diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 754420f3b56..b123637b42b 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -222,7 +222,7 @@ sympy_needs_frame (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (result) @@ -307,7 +307,7 @@ sympy_value (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -425,7 +425,7 @@ gdbpy_lookup_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } @@ -436,7 +436,7 @@ gdbpy_lookup_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } gdbpy_ref<> ret_tuple (PyTuple_New (2)); @@ -485,7 +485,7 @@ gdbpy_lookup_global_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (symbol) @@ -553,7 +553,7 @@ gdbpy_lookup_static_symbol (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (symbol) @@ -631,7 +631,7 @@ gdbpy_lookup_static_symbols (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return return_list.release (); diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c index 3bcd02da387..5fa35dd87d4 100644 --- a/gdb/python/py-tui.c +++ b/gdb/python/py-tui.c @@ -415,7 +415,7 @@ gdbpy_register_tui_window (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index c13b8610d37..c73b68cff69 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -292,7 +292,7 @@ typy_fields_items (PyObject *self, enum gdbpy_iter_kind kind) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } gdbpy_ref<> type_holder; @@ -456,7 +456,7 @@ typy_is_array_like (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (result) @@ -480,7 +480,7 @@ typy_is_string_like (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (result) @@ -501,7 +501,7 @@ typy_strip_typedefs (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -522,7 +522,7 @@ typy_get_composite (struct type *type) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (!type->is_pointer_or_reference ()) @@ -592,7 +592,7 @@ typy_array_1 (PyObject *self, PyObject *args, int is_vector) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (array); @@ -626,7 +626,7 @@ typy_pointer (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -698,7 +698,7 @@ typy_reference (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -732,7 +732,7 @@ typy_const (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -750,7 +750,7 @@ typy_volatile (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -768,7 +768,7 @@ typy_unqualified (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type_to_type_object (type); @@ -859,7 +859,7 @@ typy_lookup_typename (const char *type_name, const struct block *block) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return type; @@ -913,7 +913,7 @@ typy_lookup_type (struct demangle_component *demangled, } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } @@ -955,7 +955,7 @@ typy_legacy_template_argument (struct type *type, const struct block *block, } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (! info) @@ -1034,7 +1034,7 @@ typy_template_argument (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } /* We might not have DW_TAG_template_*, so try to parse the type's @@ -1069,7 +1069,7 @@ typy_template_argument (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1093,7 +1093,7 @@ typy_repr (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } auto py_typename = PyUnicode_Decode (type_name.c_str (), type_name.size (), host_charset (), NULL); @@ -1115,7 +1115,7 @@ typy_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_Decode (thetype.c_str (), thetype.size (), @@ -1151,7 +1151,7 @@ typy_richcompare (PyObject *self, PyObject *other, int op) { /* If there is a GDB exception, a comparison is not capable (or trusted), so exit. */ - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } @@ -1471,7 +1471,7 @@ type_to_type_object (struct type *type) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } type_obj = PyObject_New (type_object, &type_object_type); diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c index e36768ecd12..408add7239f 100644 --- a/gdb/python/py-unwind.c +++ b/gdb/python/py-unwind.c @@ -228,7 +228,7 @@ unwind_infopy_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } } else @@ -378,7 +378,7 @@ unwind_infopy_add_saved_register (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } gdbpy_ref<> new_value = gdbpy_ref<>::new_reference (pyo_reg_value); @@ -429,7 +429,7 @@ pending_framepy_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_FromFormat ("SP=%s,PC=%s", sp_str, pc_str); @@ -456,7 +456,7 @@ pending_framepy_repr (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_FromFormat ("<%s level=%d, sp=%s, pc=%s>", @@ -505,7 +505,7 @@ pending_framepy_read_register (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -546,7 +546,7 @@ pending_framepy_name (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (name != nullptr) @@ -574,7 +574,7 @@ pending_framepy_pc (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return gdb_py_object_from_ulongest (pc).release (); @@ -601,7 +601,7 @@ pending_framepy_language (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -628,7 +628,7 @@ pending_framepy_find_sal (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return sal_obj; @@ -653,7 +653,7 @@ pending_framepy_block (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } for (fn_block = block; @@ -696,7 +696,7 @@ pending_framepy_function (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (sym != nullptr) diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 37d5716b6d8..069cd84038b 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -257,7 +257,7 @@ valpy_dereference (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -300,7 +300,7 @@ valpy_referenced_value (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -323,7 +323,7 @@ valpy_reference_value (PyObject *self, PyObject *args, enum type_code refcode) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -369,7 +369,7 @@ valpy_to_array (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -393,7 +393,7 @@ valpy_const_value (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -499,7 +499,7 @@ valpy_get_dynamic_type (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (type == NULL) @@ -605,7 +605,7 @@ valpy_lazy_string (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return str_obj; @@ -640,7 +640,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } encoding = (user_encoding && *user_encoding) ? user_encoding : la_encoding; @@ -824,7 +824,7 @@ valpy_format_string (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_Decode (stb.c_str (), stb.size (), host_charset (), NULL); @@ -869,7 +869,7 @@ valpy_do_cast (PyObject *self, PyObject *args, enum exp_opcode op) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1180,7 +1180,7 @@ valpy_getitem (PyObject *self, PyObject *key) } catch (const gdb_exception &ex) { - GDB_PY_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (nullptr, ex); } return result; @@ -1211,7 +1211,7 @@ valpy_call (PyObject *self, PyObject *args, PyObject *keywords) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (ftype->code () != TYPE_CODE_FUNC && ftype->code () != TYPE_CODE_METHOD @@ -1268,7 +1268,7 @@ valpy_call (PyObject *self, PyObject *args, PyObject *keywords) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1293,7 +1293,7 @@ valpy_str (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyUnicode_Decode (stb.c_str (), stb.size (), host_charset (), NULL); @@ -1312,7 +1312,7 @@ valpy_get_is_optimized_out (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (opt) @@ -1334,7 +1334,7 @@ valpy_get_is_lazy (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (opt) @@ -1364,7 +1364,7 @@ valpy_get_bytes (PyObject *self, void *closure) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } value_obj->content_bytes @@ -1408,7 +1408,7 @@ valpy_fetch_lazy (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; @@ -1579,7 +1579,7 @@ valpy_binop (enum valpy_opcode opcode, PyObject *self, PyObject *other) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1647,7 +1647,7 @@ valpy_negative (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1674,7 +1674,7 @@ valpy_absolute (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (isabs) @@ -1729,7 +1729,7 @@ valpy_invert (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1856,7 +1856,7 @@ valpy_richcompare (PyObject *self, PyObject *other, int op) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } /* In this case, the Python exception has already been set. */ @@ -1895,7 +1895,7 @@ valpy_long (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (type->is_unsigned ()) @@ -1930,7 +1930,7 @@ valpy_float (PyObject *self) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return PyFloat_FromDouble (d); @@ -2056,7 +2056,7 @@ convert_value_from_python (PyObject *obj) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return value; @@ -2080,7 +2080,7 @@ gdbpy_history (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -2107,7 +2107,7 @@ gdbpy_add_history (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return nullptr; @@ -2152,7 +2152,7 @@ gdbpy_convenience_variable (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (result == nullptr && !found) @@ -2198,7 +2198,7 @@ gdbpy_set_convenience_variable (PyObject *self, PyObject *args) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index da357e71e8d..4d616eefded 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -932,13 +932,6 @@ class gdbpy_gil PyGILState_STATE m_state; }; -/* Use this in a 'catch' block to convert the exception to a Python - exception and return nullptr. */ -#define GDB_PY_HANDLE_EXCEPTION(Exception) \ - do { \ - return gdbpy_handle_gdb_exception (nullptr, Exception); \ - } while (0) - /* Use this in a 'catch' block to convert the exception to a Python exception and return -1. */ #define GDB_PY_SET_HANDLE_EXCEPTION(Exception) \ diff --git a/gdb/python/python.c b/gdb/python/python.c index a2ce1f6545a..2669dfae507 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -593,7 +593,7 @@ gdbpy_parameter (PyObject *self, PyObject *args) } catch (const gdb_exception &ex) { - GDB_PY_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (nullptr, ex); } if (cmd == CMD_LIST_AMBIGUOUS) @@ -756,7 +756,7 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw) convert the exception and continue back in Python, we should re-enable stdin here. */ async_enable_stdin (); - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } if (to_string) @@ -972,7 +972,7 @@ gdbpy_decode_line (PyObject *self, PyObject *args) catch (const gdb_exception &ex) { /* We know this will always throw. */ - GDB_PY_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (nullptr, ex); } if (!sals.empty ()) @@ -1053,7 +1053,7 @@ gdbpy_parse_and_eval (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } return result; @@ -1538,7 +1538,7 @@ gdbpy_write (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (nullptr, except); } Py_RETURN_NONE; From patchwork Wed Aug 28 08:20:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 96594 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E2EBA3865494 for ; Wed, 28 Aug 2024 08:20:26 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 26AB73860765 for ; Wed, 28 Aug 2024 08:19:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 26AB73860765 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 26AB73860765 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; cv=none; b=MNuQe9zNKVXYig5iQ/Zbw5YeOHjnjC5RZEKsPsyPCw25bJlFdA1czLJQ5y5BJjbcPMG4cTmC+EBwumQF0JVhiYRJ48bNg8DwuAzVMwtIBrMSVw1V97LPihsMMc6RSfsy5rnOSBOFjP7gJ2FmqpbeYZZgC3E00m6iidobsM66Xxs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; c=relaxed/simple; bh=xML9Nty/+lqzsJxuoz97eIaqdqaLN4zf0a00n0hVOao=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=uKXLR4nfZwldvP6QQDAD6UnKpSN0GzSyeJlPIBznLnN8Mru+BY+2gx9LeJxfOkvDceB3Dj3ME0ZpzvMVktcMGlq1O+7ev365xFHvi+WvoGLUqUGPRGy/lDwIoiPneF+yCV6W61kLKmOulY52qbLtfwm0XdWOG3DyNYVcG7L1VZs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E1A5521A59 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A1evfVqszh20Fipyfrn52LIjobZZr/q4/Cw/oLvU3sE=; b=e10Wkm6pI/KNVh0JGODwtWTX10KTV2o3RsbheOBn6m7NJ/QGLJ56xoCqc9siRhMsCgMcua MaAgZtRVIyVy1rNsV1aZikXx3g/lMCkUxD+tMscjJNd+EtQd1QeEQfPbombfkTajp9RRKu qpEKbPHG8PF3vELJv4Nyr9MweqreuQw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A1evfVqszh20Fipyfrn52LIjobZZr/q4/Cw/oLvU3sE=; b=rb09ChCrKPFrg5YnJoM8RG0B2NzK2zKKYqFaIej07TWn/sjgNSurI/h3x8G0qkkOXeCylY oO+lob79FPGcoWBA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b="bdYbiW/b"; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=eggwTw13 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A1evfVqszh20Fipyfrn52LIjobZZr/q4/Cw/oLvU3sE=; b=bdYbiW/b0I3vlByu35n2zTGTL2y4dGsyYTHsI9l45cwyBL9UNBNl1cCtGEOqSgPOQq3N4L AjNJbrpHYmPIgoomKjnovTE9g99XMEFTUnbXbNhU2+fXUDmxghzHDq6VIOynTwvhwDzq4r YRfz//pV71z/nv1bRILMES9BpiiMLIs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833179; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A1evfVqszh20Fipyfrn52LIjobZZr/q4/Cw/oLvU3sE=; b=eggwTw13woCvD2QirFWq0FZkoavw0xFqRDbrpPeHVsxi0aRVKK4bfSHe60kq9AvQPlWiUE 3mNyemLBIZWsUdBg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id C65BB138D2 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id +KM0L5vdzmarPwAAD6G6ig (envelope-from ) for ; Wed, 28 Aug 2024 08:19:39 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 3/4] [gdb/python] Eliminate GDB_PY_SET_HANDLE_EXCEPTION Date: Wed, 28 Aug 2024 10:20:46 +0200 Message-Id: <20240828082047.17174-3-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828082047.17174-1-tdevries@suse.de> References: <20240828082047.17174-1-tdevries@suse.de> MIME-Version: 1.0 X-Rspamd-Queue-Id: E1A5521A59 X-Spam-Score: -5.01 X-Rspamd-Action: no action X-Spamd-Result: default: False [-5.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Level: X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org Result of: ... $ search="GDB_PY_SET_HANDLE_EXCEPTION (" $ replace="return gdbpy_handle_gdb_exception (-1, " $ sed -i \ "s/$search/$replace/" \ gdb/python/*.c ... Also remove the now unused GDB_PY_SET_HANDLE_EXCEPTION. No functional changes. Tested on x86_64-linux. --- gdb/python/py-breakpoint.c | 14 +++++++------- gdb/python/py-cmd.c | 2 +- gdb/python/py-finishbreakpoint.c | 4 ++-- gdb/python/py-param.c | 2 +- gdb/python/py-utils.c | 2 +- gdb/python/py-value.c | 4 ++-- gdb/python/python-internal.h | 7 ------- 7 files changed, 14 insertions(+), 21 deletions(-) diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 8de6a858941..be55ac6a2ce 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -207,7 +207,7 @@ bppy_set_enabled (PyObject *self, PyObject *newvalue, void *closure) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return 0; @@ -394,7 +394,7 @@ bppy_set_task (PyObject *self, PyObject *newvalue, void *closure) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } if (! valid_id) @@ -484,7 +484,7 @@ bppy_set_ignore_count (PyObject *self, PyObject *newvalue, void *closure) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return 0; @@ -613,7 +613,7 @@ bppy_set_condition (PyObject *self, PyObject *newvalue, void *closure) } catch (const gdb_exception &ex) { - GDB_PY_SET_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (-1, ex); } return 0; @@ -678,7 +678,7 @@ bppy_set_commands (PyObject *self, PyObject *newvalue, void *closure) } catch (const gdb_exception &ex) { - GDB_PY_SET_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (-1, ex); } return 0; @@ -1054,7 +1054,7 @@ bppy_init (PyObject *self, PyObject *args, PyObject *kwargs) catch (const gdb_exception &except) { bppy_pending_object = NULL; - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } BPPY_SET_REQUIRE_VALID ((gdbpy_breakpoint_object *) self); @@ -1595,7 +1595,7 @@ bplocpy_set_enabled (PyObject *py_self, PyObject *newvalue, void *closure) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return 0; } diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c index 2ce2c90d805..bd6c7a6ba94 100644 --- a/gdb/python/py-cmd.c +++ b/gdb/python/py-cmd.c @@ -541,7 +541,7 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kw) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return 0; diff --git a/gdb/python/py-finishbreakpoint.c b/gdb/python/py-finishbreakpoint.c index ed3c4a5d90e..16bbc09f300 100644 --- a/gdb/python/py-finishbreakpoint.c +++ b/gdb/python/py-finishbreakpoint.c @@ -217,7 +217,7 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } if (PyErr_Occurred ()) @@ -317,7 +317,7 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } self_bpfinish->py_bp.bp->frame_id = frame_id; diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c index e7032f7758c..f820c9c8ba5 100644 --- a/gdb/python/py-param.c +++ b/gdb/python/py-param.c @@ -885,7 +885,7 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds) catch (const gdb_exception &except) { Py_DECREF (self); - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return 0; diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c index 47f65f4fd44..8064cec73a7 100644 --- a/gdb/python/py-utils.c +++ b/gdb/python/py-utils.c @@ -247,7 +247,7 @@ get_addr_from_python (PyObject *obj, CORE_ADDR *addr) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } } else diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 069cd84038b..5cce43b7400 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -997,7 +997,7 @@ value_has_field (struct value *v, PyObject *field) } catch (const gdb_exception &except) { - GDB_PY_SET_HANDLE_EXCEPTION (except); + return gdbpy_handle_gdb_exception (-1, except); } return has_field; @@ -1709,7 +1709,7 @@ valpy_nonzero (PyObject *self) /* This is not documented in the Python documentation, but if this function fails, return -1 as slot_nb_nonzero does (the default Python nonzero function). */ - GDB_PY_SET_HANDLE_EXCEPTION (ex); + return gdbpy_handle_gdb_exception (-1, ex); } return nonzero; diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 4d616eefded..c8ba3224573 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -932,13 +932,6 @@ class gdbpy_gil PyGILState_STATE m_state; }; -/* Use this in a 'catch' block to convert the exception to a Python - exception and return -1. */ -#define GDB_PY_SET_HANDLE_EXCEPTION(Exception) \ - do { \ - return gdbpy_handle_gdb_exception (-1, Exception); \ - } while (0) - int gdbpy_print_python_errors_p (void); void gdbpy_print_stack (void); void gdbpy_print_stack_or_quit (); From patchwork Wed Aug 28 08:20:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 96596 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2E8AD3860772 for ; Wed, 28 Aug 2024 08:21:18 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 032853860760 for ; Wed, 28 Aug 2024 08:19:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 032853860760 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 032853860760 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; cv=none; b=CliAfeYVxfGS2hTxk+f1+6malGYxGU8NsAgHLzLp3i/+NkMTx4D+HYtSoQwllLGiynjQ7MPx2j1RmhHJCGSzzd7Ppy3AQ0PEhCbAdqvb8vGnl+bPKCRKeZIkANfFmeeNBnGFv/O526s4d7DuoHB7+EQ8pfuQWXBPMHSZqFahq0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1724833188; c=relaxed/simple; bh=KW/pfc87u3ygpMKI31BYk/EKqjI4aZBpHrnIkXzzAvU=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=qZDOmCibvbk3ZEEX3BjYS0iRieLCWqqyIQVBqU3h04/JwrokIpRRl4Gap7OltCBB5N3PH8l6LryY8fjToGESrNBmOBw1SK3P1ocOoTbGQG4cwV2JLrnpU7XXKloOGFc2TDs2nmD+lP+GHtpt6siuMwyNpe3MUdZ8ODDU2M7Sdks= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 07A6A21B4E for ; Wed, 28 Aug 2024 08:19:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fatqlOe5X5fhNiv8LLJ1X2qXh38+s+o8YLCLhrTOHF0=; b=L+XXC37b6olv+i3VHXwrnnuCI5Cp3qglR1W3le2Y6r8MT7rXs6aseaHX7cyKOjipl1oqay GxitDEvvUUVxcLS06vT4K1vdNow+Knt1DCvSvYea6YtwGmpq7neKfGoIt1UD+hv9UTx2xr PJ3FD+6nXYae2gFwYGfmQ3sbCHpcQm4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fatqlOe5X5fhNiv8LLJ1X2qXh38+s+o8YLCLhrTOHF0=; b=8SVaMU1/Y0iwCBG/AGQpLmvhH78+q9bNHGb3iny/F/lzJCFavUHUtRyMrtLrklAKQIMtBc +dvb5PP6M4vUVlAg== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=L+XXC37b; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="8SVaMU1/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fatqlOe5X5fhNiv8LLJ1X2qXh38+s+o8YLCLhrTOHF0=; b=L+XXC37b6olv+i3VHXwrnnuCI5Cp3qglR1W3le2Y6r8MT7rXs6aseaHX7cyKOjipl1oqay GxitDEvvUUVxcLS06vT4K1vdNow+Knt1DCvSvYea6YtwGmpq7neKfGoIt1UD+hv9UTx2xr PJ3FD+6nXYae2gFwYGfmQ3sbCHpcQm4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724833180; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fatqlOe5X5fhNiv8LLJ1X2qXh38+s+o8YLCLhrTOHF0=; b=8SVaMU1/Y0iwCBG/AGQpLmvhH78+q9bNHGb3iny/F/lzJCFavUHUtRyMrtLrklAKQIMtBc +dvb5PP6M4vUVlAg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E3CD213AF1 for ; Wed, 28 Aug 2024 08:19:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id SOBfNpvdzmarPwAAD6G6ig (envelope-from ) for ; Wed, 28 Aug 2024 08:19:39 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 4/4] [gdb/python] Use gdbpy_handle_gdb_exception in valpy_assign_core Date: Wed, 28 Aug 2024 10:20:47 +0200 Message-Id: <20240828082047.17174-4-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828082047.17174-1-tdevries@suse.de> References: <20240828082047.17174-1-tdevries@suse.de> MIME-Version: 1.0 X-Rspamd-Queue-Id: 07A6A21B4E X-Spam-Score: -5.01 X-Rspamd-Action: no action X-Spamd-Result: default: False [-5.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Level: X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org In valpy_assign_core we have: ... catch (const gdb_exception &except) { gdbpy_convert_exception (except); return false; } ... Use instead: ... catch (const gdb_exception &except) { return gdbpy_handle_gdb_exception (false, except); } ... No functional changes. Tested on x86_64-linux. --- gdb/python/py-value.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 5cce43b7400..615269d742a 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -921,8 +921,7 @@ valpy_assign_core (value_object *self, struct value *new_value) } catch (const gdb_exception &except) { - gdbpy_convert_exception (except); - return false; + return gdbpy_handle_gdb_exception (false, except); } return true;