From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id i7QkEudXHWo9Yi0AWB0awg (envelope-from ) for ; Mon, 01 Jun 2026 05:59:03 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 38C321E062; Mon, 01 Jun 2026 05:59:03 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id D3AB81E062 for ; Mon, 01 Jun 2026 05:59:01 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C2A5F4BA2E23 for ; Mon, 1 Jun 2026 09:58:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C2A5F4BA2E23 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012012.outbound.protection.outlook.com [52.101.66.12]) by sourceware.org (Postfix) with ESMTPS id 5550E4BA2E09 for ; Mon, 1 Jun 2026 09:58:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5550E4BA2E09 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5550E4BA2E09 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.66.12 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1780307909; cv=pass; b=EbQhBeX+LEQKD2rknw9sbSnlYy6Xhk5qewFuAsmSWsJdtyOR9lPdqWxCpyb+qPBAimOPRTti2xkujCT39ZEmZ3KYIASMsXw2DyUAWVXUInFrIaYJKEWSVEM7P0dLBWB9C/p/Ky4VnX/AHH3rDDp1lKVUTTXc2F9dQI2f5Sdi1dc= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1780307909; c=relaxed/simple; bh=xqw9fDI8w/EbEj04fL1Aj+BSJq0VLbF69SdC+feTpqc=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=BPuQpp+V8kcRCsgxYG/Kl5p03A5uABjDkBaF/bS81xGuVBsSabeVVHmbFmdG3aU8kaqUEx0S42FV1RWsA6Wl7x+cV1L0PBYdWcrTfnOUpe0De5e/ZxOAIzaqX+Ts28O8hKb9kPn9luL9+RHMzD5SH5iH+HeC2ldbckS+ns5DM/0= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FUmMs300 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5550E4BA2E09 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=AzsJpqF9TkIiin//InNN/Xzbhw6GpcIh9qYYIv0J+YdY8ysqNIV15CM4PL4gnKcfwWwdbQk3pf0nAqNqcHE5jm484EI6GtG/JEretvace45rjkolXzxjhQQmwot3/XVi5PYJ5FppA38qJokrDyt+tkUpn63Ec58YTeQF1Iw2TgOMH1g7kBTecbOQQfMeKgLql9Pfvjw/qLHO+1lPq96oO5Z9Eu3/+/xg6mwBBFDDo2SWCu3TbkaR5fS2UVCjG2U4LusEZY7VSoqT1hATYli8ijJI8UCizgTzh2ZRtsLlL4Ci5WOEBiKG2x/g61jFSPRfTy7OTb9XjMmgZKfLEaxkew== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5T1kUEeGkDj3+YiRzGiBKxeRKLMkTtcQ5Ug2LKsHB3A=; b=Vr//MkJSczKjxYNi2AoxhEXDbuB5L72DAzQOwMZkNErLjmU7GJyfZcyZe/N7RZ6a68jeeoQv++2pMYAop3UniMz0ryWjrAQ7YXHc2l4F4JpNsenzUgjZUCZrOEZSrjUToaG/87rmOo26yOrMF3c7I//6iWaxIMgoMpBaiC7AageE6IFn5+S7oRoIqD1GC0ueGUAKS4HGZpbnvLk30frQ3NOWJZoGiyOFkfBuVOJtWIMhZkJwWD2ygmLl+XgE6x55TIMyuu6LnqIux12fm/0tb3tDRRzZgvr5qKs9MINNw2ROYtZsKAOh3Qjjr1QJoiHpSqJ6annyYUVikTiTCOlmyA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=tromey.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5T1kUEeGkDj3+YiRzGiBKxeRKLMkTtcQ5Ug2LKsHB3A=; b=FUmMs300MqlJvqWgwFhqrLERlPVnKyqattTThaasYp/DrKxWgtHBLlT2S9ac93i+wrjYSIWPHpq3oBPqKBW5iuDLG6REGhntIqk1ULbyth4/uL3aM8HFU7tE8U06r35ureH5eOgfJ2/qNVo4ymOEdouYilElzFqrUg4Iz/d5UJU= Received: from DUZPR01CA0209.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b6::22) by AM8PR08MB6387.eurprd08.prod.outlook.com (2603:10a6:20b:365::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Mon, 1 Jun 2026 09:58:21 +0000 Received: from DB1PEPF00050A00.eurprd03.prod.outlook.com (2603:10a6:10:4b6:cafe::23) by DUZPR01CA0209.outlook.office365.com (2603:10a6:10:4b6::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.16 via Frontend Transport; Mon, 1 Jun 2026 09:58:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Mon, 1 Jun 2026 09:58:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dZJ5ZvJU1iLH4tEMsz3SzKLQmYtcQgHJmzNHIVY46EyyyzYymBL1t1miPXtZFMO6Ntxw3D2q3pQevsGbI9rxiHHPFVHNmWRf1lyW0OwhXc4PSIiG6EEn5DA/Wz2+ih0lw0mZpCwuIeGjgBhjqPMhGMSk/pla4ZHdXkov829TWTdZlbrD+wZ3xxvOoQlrVbzU/EHsgrsPDFZt+jk6ZphITE/qw8OXfdybKy90VaeNpCYQFb1dYIPuTmO6fZLv6o89eXVF6uicPazPGodPh+RL57HgV4GibtJ4n2uIsiLYCLyLM+ftM14xXq51H0jj74jEZZcl7qNLvY3EXh59oah+sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5T1kUEeGkDj3+YiRzGiBKxeRKLMkTtcQ5Ug2LKsHB3A=; b=pEWzjKx0MoHFKhm/HPzQoz2S7MJ5lTKateIUNcYpP64Ku0k++gk8q2gijotvIkjy8AMS14n2qypwuoHQOScgdCNkuZa2RPThy8MSNOCj9W3ToUdHVG8eWpP0C+jDuXL7aiS9vvRAcbS09zzOQTxgXbs1XRTebG4mDJTGQOF/sqHkHPVot/SwZgUnwU08PoNh3atw3sVc+owkZoDZ5C1pI5ifWq6mpfI12YF4E/ySfQBwPVSsz6aalQMtPew0rcdEQaVz5gqZyTKaM9CsrqMITtPikXnIs909tIhkRe7Bj/UQ5h5idL9CfaxZqtvIDjCR3BbP70NHJsCQ0ViR5QdeFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5T1kUEeGkDj3+YiRzGiBKxeRKLMkTtcQ5Ug2LKsHB3A=; b=FUmMs300MqlJvqWgwFhqrLERlPVnKyqattTThaasYp/DrKxWgtHBLlT2S9ac93i+wrjYSIWPHpq3oBPqKBW5iuDLG6REGhntIqk1ULbyth4/uL3aM8HFU7tE8U06r35ureH5eOgfJ2/qNVo4ymOEdouYilElzFqrUg4Iz/d5UJU= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DU0PR08MB8663.eurprd08.prod.outlook.com (2603:10a6:10:401::6) by AM0PR08MB5521.eurprd08.prod.outlook.com (2603:10a6:208:18a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.16; Mon, 1 Jun 2026 09:57:19 +0000 Received: from DU0PR08MB8663.eurprd08.prod.outlook.com ([fe80::f957:cec9:ec8d:7968]) by DU0PR08MB8663.eurprd08.prod.outlook.com ([fe80::f957:cec9:ec8d:7968%2]) with mapi id 15.21.0071.015; Mon, 1 Jun 2026 09:57:18 +0000 Message-ID: <65c7d5c1-37ba-4e49-8d2a-800421075fb2@arm.com> Date: Mon, 1 Jun 2026 10:57:17 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1] gdb/python: fix memory leak in gdb_py_tp_name To: Tom Tromey , Andrew Burgess Cc: gdb-patches@sourceware.org References: <20260526160459.270322-1-matthieu.longo@arm.com> <87fr3e6sdp.fsf@tromey.com> <11b35b46-7e18-471a-94e2-91fef5b287d2@arm.com> <87tsrr5vtl.fsf@tromey.com> <62841b2c-9d0e-4efc-9b26-ca9bfd8787b9@arm.com> <87ldd35php.fsf@tromey.com> <87zf1ixzc9.fsf@redhat.com> <87cxye5pn0.fsf@tromey.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: <87cxye5pn0.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0166.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18a::9) To DU0PR08MB8663.eurprd08.prod.outlook.com (2603:10a6:10:401::6) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DU0PR08MB8663:EE_|AM0PR08MB5521:EE_|DB1PEPF00050A00:EE_|AM8PR08MB6387:EE_ X-MS-Office365-Filtering-Correlation-Id: 446a022c-b134-4eb0-aa65-08debfc45027 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|1800799024|366016|6133799003|18002099003|22082099003|56012099006|4143699003|11063799006; X-Microsoft-Antispam-Message-Info-Original: ffFdq5zDoWrTpoMRPMU0+4QUVCk4HG4jwO+qnXKUwiFGgNshfTZOQveu1YiSol35L4kyQWfUaL9vIEE5YDz+f7TA1q5xe2vNWMHe6RzoV0TMpY66YuTabbuWiwomzND/v22gomChTHjErUYrrCdk8VoQQdroy/bnCaqGta1S69QJ8SRA8XB8FKXJXx/cMgAbnZW+eSwiavVusbs2Ex9qGGuCprXOit5r0OL0H1wpTlXd67ngg/YNfM0d1i8D0JxkhmZz51JVDmOPJf9hcnbCbolSDYT8v/AGeZ/ye2PRul3yR0hClRs33iI409i8pNcYSxCO7k55a7pY4DEY92cYC4yOg35DbxzX+BteGP2zx+BtIUYPnHyxwDN2+EC/eBnlHYMBAVFYcuMJ1WO5gHnrFYw6/wYOZrMekMto0PLLdsI7nQHi/8T9iIsZLBrOptXYlYNHk8n87hWexBYEHFb5dREEE/7jY140XqXru2pkcfwh6M/NHGVqmtEPL7Mx2b1ti0oerX47yJFjUlpTa5J0FnLGqxtMOdCw1YfbzmCrCgfPCmy5k4DG1x6kv5gAm2Crurrj/LToSHWz+IEhPrG58tNrHKTsYzZc+P8ZLA3BHBDRYGorbi/5HL1vMbOOPOf7CSmB2COURXSjmmdb5rVjhcV0F7/+KonbMrwyPHkx1neiNtmV5cjdtIS2tiPJApYIQNt9jiOqR0MjtjDW+BaMUA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR08MB8663.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(6133799003)(18002099003)(22082099003)(56012099006)(4143699003)(11063799006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: o1GN9fmgwQJKCZlo8QIyOL4AYa1Mzq4YkSeLLqIxQQSDFQ+pq2nC/+kDPuJhfzFMt40CsY040x4Mou4znVYrAH9DikNw4ScmjRW2jMzSem/ClnQBS1TIJ23jct8uT/X5K+AFn6JvjXQa6nuAVjjBdDk45weD9gN2Yze7LGa2yJyqa1rQcdydjnEETLZ0ADk5S+pA18o+vxvJtJ+UO7b1ZqPIyH4gipoFdxbgeOUTK4Hs0Ro/2zTVlHAjWCF8H7jVnYpNJLnUeYEwK/pFyTcDtD4L2mKtxcBC9THC9u911MIoD8iMe2QVy9bg7pRBdjVOB3KphfY8p9CfyJ6ZG+6QGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5521 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF00050A00.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 554e3256-c958-4d6b-0cc9-08debfc42ad2 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700016|82310400026|376014|14060799003|35042699022|6133799003|4143699003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 0d8m//E7VzU7CKsKcxnenQm1IDLQDSsBtilNG1g2H6fIu1fam4mddE0IygZh3aAm9Lo/lRqbhMaUxHyjZRPebfg9RBPRusDOhxdCkmJwMmA7/o5lp5bk2GM+Y3PmDq4bTmvnTXf/RtfEyXuMBbd6tWarGXrxMaPzpWsMBLoVilvJ3YsI05iFGH6xT9uKH18VFfDz3CElYZ0RlMu0C+etOxCprXP232KiAqVIr3G16vOT/pe9Db3jT5IpYzIrjq19gkuhJI5HeyFjSat+x4IknM295QvUwlbgseJkfEtRzH0L96idz9kYx946pIOxRtxnhYB2z4ukQiZDOmrKJBTid5BJgT7JBdyTXXQL2K2ZzBO/4Ks6YyITvujHV8QM1cLHHgNo7TjrHYGJi3ZViW2wyddluqNHhjiD589NX1+xRs5/5y7o9/ha5R+BTWqEh5abSiDlusoN9uK9dSsbHm8NUBdzw6qEEpnuPEOWkD1j7dDKmdHILeDldFmXwDqcNDhWUv41XzajIhaY7WSKWIQENg5uHO3nhEb/24Ny9TiDNsXLXSzlYC/oyMi0TcNOE/kJ4ywjXrpdW+MFaaoZWxWlSDJsFfaGLY3/mVk1ytSg7EUIkoDto6znJpE6m1GfRMagDJpIahMqzIUuLbpGRLwaTHt4/J9Vq3SnB9btn76hOU6hw5Dc/fcL9hUPdJblOv4YiNdT/Ta+bjAzq87P+NOovz2GWLEi2VT34WEVXEEahdw= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(14060799003)(35042699022)(6133799003)(4143699003)(22082099003)(18002099003)(56012099006)(11063799006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: s3fUMehZiLxlnd1ZvhcsAkL/UYi9LG/kdF2kCDc9LymmxhPTt1fRrLEFev76nvuqa7NQ/A3IltnzdrFsMB56FKEA7nwlvRke20kRkfOG6x55TMXnzRXc0D5UPWZBHMs/QHRMEMfMrwHczR0B0Opz4v30UIiuhhpJaR1UyjZKOrp1ZTzxaCf/KgUKltAAhGBuTumR8H+A7BYiXQ4Gd5u4qXXqPe56xwo/hKOyf/DDWGRIeIb7U//AQwqJLKqsjr9RIuNJUFiOzXfCLKuTOsdBiCtxwYigOuEMGYwwJc5jF4vHcIi2LIcC66HG8/BiQ09a0VHlwItuiCj78azugGTdzOW83q7dO3OsYVgdWOTmxXRquB2mwdtgTQQFaKBdugrz6vkSzYi8/Td+LsyiBMUQmjwxwjcl6Da/Jy7wTZImI3LsRGNcPlYgc/cZdtTl3pAy X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2026 09:58:21.1477 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 446a022c-b134-4eb0-aa65-08debfc45027 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF00050A00.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6387 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~public-inbox=simark.ca@sourceware.org On 29/05/2026 14:09, Tom Tromey wrote: >>>>>> "Andrew" == Andrew Burgess writes: > > Andrew> isn't throwing an error here going to be problematic as gdb_py_tp_name > Andrew> is called from Python callbacks? Unless these are catching and handling > Andrew> exceptions then the error is going to end up trying to pass through > Andrew> Python's C code. > > Yeah. > > I guess maybe it isn't explicitly stated anywhere (not sure) but the > rule in gdb's Python layer is that gdb exceptions can't propagate into > Python itself. So if a function is called from Python (say like a > __repr__ implementation), then that function has to be sure that it does > not throw. And since most things in gdb can throw, this is why at > present we wrap calls into gdb's core in try/catch. > > Andrew> So maybe just returning something like "" would > Andrew> be better? This might be better even when the safety work _is_ merged; > Andrew> if gdb_py_tp_name is called as part of logging then we'd probably rather > Andrew> log "" than have GDB throw an exception? > > Yeah, I think this is what should be done, since IIUC the cases where > this can set the Python exception are pathological in nature. > > Or just propagating the Python exception. Though this would mean using > a return type other than std::string. > > Tom Adopting the approach proposed by Andrew. Matthieu /* Return the type's fully qualified name from a PyTypeObject. */ -const char * +std::string gdb_py_tp_name (PyTypeObject *py_type) noexcept { + static const std::string NO_TYPE_NAME = ""; + + auto pyobj_to_str = [&](PyObject *name) -> std::string + { + const char *s = PyUnicode_AsUTF8AndSize (name, nullptr); + if (s == nullptr) + return NO_TYPE_NAME; + return s; + }; + #if PY_VERSION_HEX >= 0x030d0000 /* Note: PyType_GetFullyQualifiedName() was added in version 3.13, and is part of the stable ABI since version 3.13. */ - PyObject *fully_qualified_name = PyType_GetFullyQualifiedName (py_type); + gdbpy_ref<> fully_qualified_name (PyType_GetFullyQualifiedName (py_type)); if (fully_qualified_name == nullptr) - return nullptr; - - return PyUnicode_AsUTF8AndSize (fully_qualified_name, nullptr); + return NO_TYPE_NAME; + return pyobj_to_str (fully_qualified_name.get ()); #else /* PY_VERSION_HEX < 0x030d0000 && ! defined (Py_LIMITED_API) */ /* For non-heap types, the fully qualified name corresponds to tp_name. */ @@ -44,11 +53,10 @@ gdb_py_tp_name (PyTypeObject *py_type) noexcept # if PY_VERSION_HEX >= 0x030b0000 /* Note: PyType_GetQualName() was added in version 3.11. */ - PyObject *qualname = PyType_GetQualName (py_type); + gdbpy_ref<> qualname (PyType_GetQualName (py_type)); if (qualname == nullptr) - return nullptr; - - return PyUnicode_AsUTF8AndSize (qualname, nullptr); + return NO_TYPE_NAME; + return pyobj_to_str (qualname.get ()); # else /* In the absence of PyType_GetQualName(), fallback on using PyHeapTypeObject @@ -58,15 +66,14 @@ gdb_py_tp_name (PyTypeObject *py_type) noexcept when the minimum supported Python version is increased above 3.10. */ PyHeapTypeObject *ht = (PyHeapTypeObject *) py_type; if (ht->ht_qualname == nullptr) - return nullptr; - - return PyUnicode_AsUTF8AndSize (ht->ht_qualname, nullptr); + return NO_TYPE_NAME; + return pyobj_to_str (ht->ht_qualname); # endif #endif }