From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 39UqNPV2GGqpECMAWB0awg (envelope-from ) for ; Thu, 28 May 2026 13:10:13 -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=Kyw1qUbS; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Kyw1qUbS; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id B32B31E024; Thu, 28 May 2026 13:10:13 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.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,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.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 9D3761E024 for ; Thu, 28 May 2026 13:10:12 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 209AD4BA2E36 for ; Thu, 28 May 2026 17:10:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 209AD4BA2E36 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=Kyw1qUbS; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Kyw1qUbS Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011017.outbound.protection.outlook.com [40.107.130.17]) by sourceware.org (Postfix) with ESMTPS id E939A4BA2E1F for ; Thu, 28 May 2026 17:09:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E939A4BA2E1F 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 E939A4BA2E1F Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=40.107.130.17 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1779988183; cv=pass; b=QrRsAqXOxnn0/NcIbGB7I0Lb6FFOGg9fzpVlSR+kqKJLrQL3y4helWoIr9MiRXh7/JPnUakHDqFKBIiPe4nzc6IKQ+JTTv3i5K6YpQA1VaWSMAP/SGeLVypnVgKyANsMIwgWzwluGR62/i3BxEM3jgy4t8obRvAsDn5zjDGRedU= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1779988183; c=relaxed/simple; bh=OQrZvrpq0gwk9yTJ2b2Dr8aeh8p6QVB9MPKgWm2KpWc=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=rRnKtt44Fz9fA3GRqLhlxrd1MkKEBrKctPaDf6cTzajrgJM796FaGV+QKRxWnakn2l1AjO1hYgcb+GjecWKkYG6RFkIftj5yY4Ttrd1f+RGrs+Ged/WPVHNSQIztniwgXvqOCOukgo21A87DTCEPWQfx+MdXLT1Im/e5ivDyDgM= 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=Kyw1qUbS; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Kyw1qUbS DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E939A4BA2E1F ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=EZhCYvEHwNEphNkijtJI5bbL4uQUfonNP1uOKCBOMV10x7dXanx3SW4r1dVuSp4GU5la5JIUm8moH3zwPcRO/2X0m01LVLBLbfeKIWvIaf5dg0OOEGvoeLlMspWlwRHUElUWyUBofX8jvMexz3CPX8LusFnfnDd6SBkW3FqpT2psBkVgLPFKzuYtTtCzZl+wUzNbtgKJJfJ8VivXihXPjwzrSGfpY1yH6HlrSZ21iHzdLrbEjDh9AueDtDPPsPFd+aj8LY1ZFzkzwuUTcqg/1HswFp4/dcUIg8ZJZRsV7MPiLkCoo61KSoJBgd2xqGPrXcKCb/JPjAH7xM+YqysHmQ== 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=6baclb4w3W7yiYB/wKYSOLnI9itmP4dhRUaeQCTYCqg=; b=ydwZ5mSwc5u/fGqggdEdNTtbCGq+BjuR83snQxWuZqzrGbZ42L6fAgGhhwVwWzfkUCuel8uG7AQpcpu29BKI4gsjGYjwq+zbCTMwlxofVTrMZM+/ifiLac0bDp2SY3oGeX2etZzqeHugU78fg9/PKlHOMu24Yih0KeF4mI/LAXuiPNOT/0rUnverTMS2EvZdpX9wBBO7lqxECjjjCW9WKtmxGQWH4U70Uv2+hHXC25G31WMgnJXw+zc9aB6ciJm72jmPgUyGG5NYDPMuwPAH+FcehDPEo5zqa8kJAvTtC1lIK0lSf477nzEBemOQSStKsC8xfBVmJpQPJmPZcIcByQ== 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=6baclb4w3W7yiYB/wKYSOLnI9itmP4dhRUaeQCTYCqg=; b=Kyw1qUbSm24Bo7BoN+TJen5yhX+SEAdhTnKQ6aUgq21lPj36O5qQNoySTVC2zt8aI0CbMD0dJwy+kF07vK5Kj8NGxy7j7iELCd8AKBToQ5OjNT5gZyNxov4O5lgvZelAxiolwl24k/WSxaDjdqSOWuqVWE7S7C67ATgQIgqeQWw= Received: from AM4PR0302CA0033.eurprd03.prod.outlook.com (2603:10a6:205:2::46) by DB9PR08MB6505.eurprd08.prod.outlook.com (2603:10a6:10:23e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Thu, 28 May 2026 17:09:36 +0000 Received: from AMS1EPF00000090.eurprd05.prod.outlook.com (2603:10a6:205:2:cafe::87) by AM4PR0302CA0033.outlook.office365.com (2603:10a6:205:2::46) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.71.14 via Frontend Transport; Thu, 28 May 2026 17:09:36 +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 AMS1EPF00000090.mail.protection.outlook.com (10.167.242.87) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 28 May 2026 17:09:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QPpl1P3cHiAHvxPQaVxkiSXmEUqJysJLWE7VPpdO0ebbcrA2/EdPD7PWQ6eJ9TVFzveb67chUHJW8ZmIR4NxhsNGTN3jV4eADYHnS5nYO2kASLKaGguiZVpMJR5PWDfOCWsX6tpv5NesgQJR0NxdNpbx92/VSfiuokpx1qENCUdrCY7N5mQTRIhEbbQoLAciXQrHEqrIe5VksLYvedvaGN1E2KyCOK/wc6Dea8RSnhpWpiEu5HpVnU47gVXErw+BXnBq5IKNMrar1yTd6vcgNV7h6dL7X8FjXC+muVK9E+bv6ULl6axpfbb+7D3RQ0dWBjy7GgeP+n56gUawcRHVjw== 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=6baclb4w3W7yiYB/wKYSOLnI9itmP4dhRUaeQCTYCqg=; b=IqPYtiIH0OaiWUCWLBwURURGc0PrB3OljWzQ0LwZhkeuBbVJtMsoFwe/VbxTNAwAFpKnbxLlY4IXbTd8SQ/QVqRJDFAk2v2CzRBjfLkm79mxW/YDO3oxriVFWFZ0AjJsnSshvRp1v6Me8i5ke713U1S1x1/FvKstOSD73ytn25DFADWeWs2RWBC12BLtp9mIPLKzb2kDFB031LAZNQtcKRCDbt5Ek7qAN3EXF7EgO7oj/DvX9JUphMVUYpg5/TiCLfCBlj7yMt7SDkSE7H2+UGx+kMneOh4jPmPCWB/QfU7PgBnnnWSVjSvFc3uACzBS4fiZ94T2WOXaNKSckTNaJw== 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=6baclb4w3W7yiYB/wKYSOLnI9itmP4dhRUaeQCTYCqg=; b=Kyw1qUbSm24Bo7BoN+TJen5yhX+SEAdhTnKQ6aUgq21lPj36O5qQNoySTVC2zt8aI0CbMD0dJwy+kF07vK5Kj8NGxy7j7iELCd8AKBToQ5OjNT5gZyNxov4O5lgvZelAxiolwl24k/WSxaDjdqSOWuqVWE7S7C67ATgQIgqeQWw= 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 GV2PR08MB8051.eurprd08.prod.outlook.com (2603:10a6:150:79::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 28 May 2026 17:08:29 +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.011; Thu, 28 May 2026 17:08:28 +0000 Message-ID: <62841b2c-9d0e-4efc-9b26-ca9bfd8787b9@arm.com> Date: Thu, 28 May 2026 18:08:27 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1] gdb/python: fix memory leak in gdb_py_tp_name To: Tom Tromey Cc: gdb-patches@sourceware.org, Andrew Burgess References: <20260526160459.270322-1-matthieu.longo@arm.com> <87fr3e6sdp.fsf@tromey.com> <11b35b46-7e18-471a-94e2-91fef5b287d2@arm.com> <87tsrr5vtl.fsf@tromey.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: <87tsrr5vtl.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: PA7P264CA0321.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:395::24) To DU0PR08MB8663.eurprd08.prod.outlook.com (2603:10a6:10:401::6) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DU0PR08MB8663:EE_|GV2PR08MB8051:EE_|AMS1EPF00000090:EE_|DB9PR08MB6505:EE_ X-MS-Office365-Filtering-Correlation-Id: 18b44067-0f95-47c5-376f-08debcdbe52d x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|366016|1800799024|376014|22082099003|6133799003|18002099003|3023799007|4143699003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info-Original: WRZvvJZL3mVJYitzOdCKbWQhlbAzX/WTwuiW0zTUm/6wkwhihN+gwmHdyyKFyD1KUhKhXpE44T1c9NurIiyhaqcGnnDOzWhZzL3lf5A994Jyheouk0rWuu2dxUTdCzwxBPaXGRKM4Mjzr6fj8tmCzAPD7wCYFTd4XRiS0E9oc6A4zu3AMcs2N54ak9LSxYcwjJf7NV54Kg6JTWwnsLH7TAiedWl4fWNkrTfv8wwLdINlLlz0JQbCXTLFS46Rv3yMEeD7j72ldq6Me77+6E3IdaMSYMTdwxf1aXT46232yJBQSejfFbxZvPAfEM9KcJybOvU7n/iPQCB4eYu5eshA2g5exPbIFjPlzMllnW+B7EkYnL7G0Kk+sKnR9J6prYoCAfE0brz4D25k4QPot5jPZMmCHIyBYZFBG5YXMp5LmUtjfWWUEduub0mzWSpVWoQzF3DvMxSW1WJgqSReri2JZcU+TTRao6zTDHwJEQ0lL61vvdcspj56D3kPsiB7xC46/PozWG9mARhA36iPnbCWGdIxJGFG94K5ZlROP4p499WM2z/IYtamAZAGXbenmH+y5FVXEcGLu52cPu1DZ+GfT8zWAoEwAjjS5QmXKlm0btMJGYo2cff9B+orWHMledWeQydrK4mwUz+iaRuI19JEUZYzcNVkaeGxt9ovNX8vfYzB46+IHMnxFqV5UEdd/idS 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)(366016)(1800799024)(376014)(22082099003)(6133799003)(18002099003)(3023799007)(4143699003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: MB3bbvPzQNHPYia3pAUI9wInYNC2Nhoj9FlIhEIIBac9cNkeT9NYfkToLPZ4RIyIJUiofFB6Mi43rBqEx6uinu0dlykQgivJcU94kIp9nWrmDvwAuLym4JB62EDIrRedUAQY3qBFSaJs5vKmiH9OeXz/7jXdegWfRMS8YW0i5742H4frdcB93+mdGMeZAzoBZ5DEQFuU8HNLLbDE0UD/dxzt3TAw4GKR+GG9hPUzk7cWr7d7og5ExLT10En+aKfhFZVezRxiJxJRqSG6zH0eeHHQtqDohNA1vOqp+5PlpgVmvx3dNvCj9SgLarbsoOyvb2v4N6BmljKorDqE+Vuybg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8051 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000090.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: aa5b7f34-d3be-42f1-94e6-08debcdbbcae X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|36860700016|1800799024|35042699022|376014|82310400026|11063799006|18002099003|22082099003|4143699003|6133799003|56012099006|3023799007; X-Microsoft-Antispam-Message-Info: a9ipPfB23kO+DTkg9ED0ZY5kePvIHv+AmkEPtCGgqoHz5EqbBJj2eLH5dT6f7qF04W9En36v+l9HXz5i7VmLwX7fyH/5SBZQbFjY0hn0CNKuXpz8TSTpKpORO7Nw8yXdRImCdKko9HHEjX6KBJM+oZ45JZk2Bjc6Y+nkwkVXwYedGFSMf3NiG/T+Y6tVugBXC1loHHF6k/AM+vxN/AjjiHauNJA4l5eNUcDkwwJ2PUEryNnH4/SkxG8U25wHv9aTWTRC/nI5yBvqBtsMzBCEidC/3gwO9frp0HTaz2clcGvUKFJP+NA6CTRZOC0huddAv4Ls8sDSZccNdBE8cDSJBpo2nRhi5243n9H1Cg8ukCbaGuZAVJMYmuqVGbgAaKZ+NTMslPZGkijK3VKzkjj9XgQ0fifpNVAhewzBOf7v0jvGuqBH/kHvWi6qJOCFlmWbM1v6820KdPRDFkZ2i1nByxED6s2Xfak1+9aJRT/+eDm1YFH7pY9F39rw7TnTNHNp8djJ5q/WHHbGt74y9dOgVN2/pzQLgUa5ydl5uFnuyyc/RLNGgjfQbRidjkYEkwS0qqLDvDHWoPtg0DVEQnfEm0TUQGkrp/cbF4oPPRH9ATOTH8zuYWB7NIZOM5L2UEFqaj62OF/GUX+w0k52bWyxMB9vMNAHAEXJTVwD/q1HB7hDuPd3KIipNz5rW89HGQa382o0BKDHZzF2ge3CaArT9VKd/CQ72/W1uZOp5T2nB6w= 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)(14060799003)(36860700016)(1800799024)(35042699022)(376014)(82310400026)(11063799006)(18002099003)(22082099003)(4143699003)(6133799003)(56012099006)(3023799007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: H0QiBR1TaI2+LgsEE1QAJVLqbH1tz+fiuhHF7cTWGuuRNk1zzbKK3vLZzgplt1SlsauB6i89aOib4h4D/PzoWb4tgTDFhRNykpL3H8JFnrGPLmbUBIOAo41G+0JYfudUjJhwtFk80kqyueKTVKru/J8Zq886+lkOMsn/6ZgTKg8eXbnryVU7JypxXv0zLuzXLEYgT56gcJDTqvvAafXS8QGKqPxoruhfQCGXG+7ilnov4HfsTorOBErpfy8aOMDVBh+u8YlE9u6bO5zTU3LM3YLsGE+lg4oGeEzR1bYrJlXbw5MK3YEhuYMtJuvLM0F/Am0ak59Vty9cJhiSCrNmONY3aRlMzy3ValxmYFWNLUBD9MpCv0qPcF2hXQVAbaPNCRaxjQN1HyPKolL4ONxx6kP0BW7lUznzVnUHZcx7ks9Jza3+09rHa6Y6sAzzKuM9 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:09:36.1086 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 18b44067-0f95-47c5-376f-08debcdbe52d 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: AMS1EPF00000090.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6505 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 28/05/2026 17:43, Tom Tromey wrote: >>>>>> Matthieu Longo writes: >> - 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 {}; > > Something I missed in the initial patch to add gdb_py_tp_name is that if > it fails, then the exception will be set, and the callers don't seem to > be prepared to handle that. > > I'm not really sure what to do about it. I guess the principled thing > would be to change the callers (including those of gdbpy_py_obj_tp_name) > to handle this properly :( > > Though if we're really sure that this can only fail pathologically > somehow, I suppose we could add asserts in gdb_py_tp_name itself. > > Tom Indeed that can happen, for instance, when this function is called inside a tp_clear() in the middle of a PyObject destruction. It happened to me when I added some logging inside the object's tp_clear() and wanted to print out the type name. It looks like a very special corner case. If PyType_GetFullyQualifiedName () fails, it will probably set a Python error that has to be cleared, or it might cause an assertion to be triggered in CPython, and the program aborts. Example output: # Start clearing the object. Call PyType_GetFullyQualifiedName # PyType_GetFullyQualifiedName failed while building the fully qualified name # that is supposed to contain the module name. AttributeError: __module__ Calling (null)::tp_clear_impl (0x7fcecb849dd2) B_clear_impl PyType_GetFullyQualifiedName failed! AttributeError: __module__ (null): calling MyModule.A::tp_clear PyType_GetFullyQualifiedName failed! AttributeError: __module__ Calling (null)::tp_clear_impl (0x7fcecb849996) A_clear_impl ---- Something like below would at least avoid the general abort, but it would cause logging of errors in the middle of the destruction. How useful would it be ? gdbpy_ref<> fully_qualified_name (PyType_GetFullyQualifiedName (py_type)); if (fully_qualified_name == nullptr) { PyErr_Print(); PyErr_Clear(); return {}; } At this point, I don't think that it is super important not to crash because there is a serious logic error somewhere if we are unable to get this name. Consequently, an assert might be more appropriate. diff --git a/gdb/python/py-obj-type.c b/gdb/python/py-obj-type.c index 45f7d8a3d74..a78cfe6bf39 100644 --- a/gdb/python/py-obj-type.c +++ b/gdb/python/py-obj-type.c @@ -34,9 +34,7 @@ gdb_py_tp_name (PyTypeObject *py_type) noexcept /* Note: PyType_GetFullyQualifiedName() was added in version 3.13, and is part of the stable ABI since version 3.13. */ gdbpy_ref<> fully_qualified_name (PyType_GetFullyQualifiedName (py_type)); - if (fully_qualified_name == nullptr) - return {}; - + gdb_assert (fully_qualified_name != nullptr); return pyobj_to_str (fully_qualified_name.get ()); #else /* PY_VERSION_HEX < 0x030d0000 && ! defined (Py_LIMITED_API) */ @@ -51,9 +49,7 @@ gdb_py_tp_name (PyTypeObject *py_type) noexcept # if PY_VERSION_HEX >= 0x030b0000 /* Note: PyType_GetQualName() was added in version 3.11. */ gdbpy_ref<> qualname (PyType_GetQualName (py_type)); - if (qualname == nullptr) - return {}; - + gdb_assert (qualname != nullptr); return pyobj_to_str (qualname.get ()); # else @@ -63,9 +59,7 @@ gdb_py_tp_name (PyTypeObject *py_type) noexcept writing, i.e. February 2026. Hopefully, this workaround should go away when the minimum supported Python version is increased above 3.10. */ PyHeapTypeObject *ht = (PyHeapTypeObject *) py_type; - if (ht->ht_qualname == nullptr) - return {}; - + gdb_assert (ht->ht_qualname != nullptr); return pyobj_to_str (ht->ht_qualname); # endif #endif