From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id NRcEMCTmqmlz/BgAWB0awg (envelope-from ) for ; Fri, 06 Mar 2026 09:35:16 -0500 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=KyEjRQ+4; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KyEjRQ+4; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A40361E089; Fri, 06 Mar 2026 09:35:16 -0500 (EST) 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 414091E089 for ; Fri, 06 Mar 2026 09:35:15 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 42FCC4BA2E16 for ; Fri, 6 Mar 2026 14:35:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 42FCC4BA2E16 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=KyEjRQ+4; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KyEjRQ+4 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::1]) by sourceware.org (Postfix) with ESMTPS id A15E64BA2E10 for ; Fri, 6 Mar 2026 14:34:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A15E64BA2E10 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 A15E64BA2E10 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::1 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1772807685; cv=pass; b=KrD+v4lwAJO1UVyrGlYHNUuiwgi/cyKOGok7e7V0OQTc5UIAGV4IRIZppuCbuuJ7AkO+5b6VTz4s5GbOCgFFxffLC4pkFNjfSeHjoR0FseQaMB7w3EG8Uq/l9cm44gxVbeLj6qjESGNvGlsGYO+xv5CIoU1DaCcPEoaXYmqpEfs= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1772807685; c=relaxed/simple; bh=euAOdn9NH6a/xM0F0Itd4h5TcTIWCQLZ8zZNxL8xpjU=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=ANrFTNs1mC5Yc6uQvRo6KCNGouz8MUJWmEVYzXG9k1FZ5Q4HERrKc34lwr8Me16mYj96dMsq7t17kbSiLIflKBGflzrhdRivgFkwYredh144miO9uwQcofAi9YvfegYDenSsDYob1Do0nARFayEqJpAPlnF/CYsRpQnTD68AbAo= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A15E64BA2E10 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=ZhhnEtniTZCmHV9AsxZ+n7QQF5Yt56pVxJGuK+PJgjKnQoI2cA3nlNEKeOLSxDkju2vUqgknzwITxT/HJAADAzSgSZIDwRJpwbE0Ium8pv3CbSb7CvlnO3WzmM2XqXOucI3fuZwpZAn5azvzrzqBnQLrcT4997aehMFDvYX9FVBrpJ56Ujf6bO4Tnlk3X4yNEiaa7X6jNldkM6zohWB8o2HG/68fJU/JrmZRGZNNxEYPGP/UNp1B75bnaTSdr6ZnOrEeaFM+JdG45AMwh7kyViVflVXojgCpqDLWd0TsLkE7G7ljB+01fiAX5mI6Lq+Wmv+Vu6EYSl26w0el2mPBbg== 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=ea8up6o8ygWvR8Tbs/+qRNga69fqp9g25MaP5xAB9uQ=; b=edeTwV1wOl5PuVKfQuJ0Rch4D/0dPRFe9BFMCWeTbmzGY8FyKerF6Sy3yijJ0f+PXYHgqq+z02ZV9X8oEJCdGm7lc4468BxQGL9sOSJ2K77+ty7COcTzQeq7Ib2EH/jxD+ttK2Ap4rOhd34PGt0fr8SFcbswh4OPzf8tUGfCmqPjatKnSijCi1ri0UzOKmdPUY/fura4BMPWqG1U/jjHSeSGJahIXQH/Jzyd3EVJfyE5X/U7PJh7RpaKX3BlulSx6xrBdkDSOH9DVMqMx/x75+1ulcPdx03vyCP4XKjrs3WBl5qnEiJmWCH78Oz4c15SoFu65DGjgzPPkMuhAsPStQ== 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=ea8up6o8ygWvR8Tbs/+qRNga69fqp9g25MaP5xAB9uQ=; b=KyEjRQ+4uiPZKQQjlCEtwn+8qqvzFzlgRBbkSpTJvfnvTaKGEgLj25aX6sw8CCDxQNkOjU8cslO3AlL7x1YL07ous+h2J7Fy96zkNgBSe9ks+18diCO6v6WoYNXenEa6NqufHFBKEXOt1khIXQ+RpCdH6JH1e2pzbQHP4EaialQ= Received: from AS4PR09CA0013.eurprd09.prod.outlook.com (2603:10a6:20b:5e0::19) by AS2PR08MB9320.eurprd08.prod.outlook.com (2603:10a6:20b:598::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 14:34:38 +0000 Received: from AM4PEPF00027A6A.eurprd04.prod.outlook.com (2603:10a6:20b:5e0:cafe::f2) by AS4PR09CA0013.outlook.office365.com (2603:10a6:20b:5e0::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 14:34:35 +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 AM4PEPF00027A6A.mail.protection.outlook.com (10.167.16.88) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 14:34:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zdfna65b5iUomaE4fjGrgl/hzpgmULsS2NLOAC1I4zJ7RudMg7fVrOd1bBWyRB5FgmzIsbuPUT/o2qV0UdOdyjwUdv5Lwg9AZ2db4H+PSvvQXuNgPYu8poFS+aWj8rNSXwQK8HcuRkAVM3fjnLGLQ8aVf/9vw1i7W93xI46tl8MO0EfwYcD2U73B5mkAhK2MZPQngh86MuVx5f31NoH8ZxMZJvKfqAEBcEvvYhtzv8xU7V3kXhrjbtBSMHTRb83kqsaMNPnQVN52bFL+S7uZAhbMoNcx6ep6/CJaZ2JJ+SqD2FBu+9WNgTiRt6xcKOACPR0JQxYJ47OfVDdAeemzVw== 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=ea8up6o8ygWvR8Tbs/+qRNga69fqp9g25MaP5xAB9uQ=; b=VOIyoD64pSrgwWYZHZTf5pvd/GrNq4Oyk0VOEqMu782KqOV0Rp2gHA7GDOSFkzcu/6fcXel2q6PrEG+jMfWEuFZ2M+tUCFLQttAXMIpJTQHah1QOUScnSye1VIz0FsRiHCmIiAcM47IDclrMpHydvCECP+YHMje1QojP/TPQi3A4jLKnZb1gUazp9J7eemLqtA93M+f6zE5IP3K1hJinJw1GcShC+ZRptdORlR4IYvaEadm+VUrwrxKfbR4fOmTO2VH7vmqEeU6HRa47N2nKVTaBmUMiNh8+1x8ql81Dfqtb6pwLCqkNK1tZ1nXrNb8sARFfsgxR2yys1r+Nvv8fkQ== 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=ea8up6o8ygWvR8Tbs/+qRNga69fqp9g25MaP5xAB9uQ=; b=KyEjRQ+4uiPZKQQjlCEtwn+8qqvzFzlgRBbkSpTJvfnvTaKGEgLj25aX6sw8CCDxQNkOjU8cslO3AlL7x1YL07ous+h2J7Fy96zkNgBSe9ks+18diCO6v6WoYNXenEa6NqufHFBKEXOt1khIXQ+RpCdH6JH1e2pzbQHP4EaialQ= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB3PR08MB9010.eurprd08.prod.outlook.com (2603:10a6:10:42b::8) by AS8PR08MB5896.eurprd08.prod.outlook.com (2603:10a6:20b:294::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 14:33:32 +0000 Received: from DB3PR08MB9010.eurprd08.prod.outlook.com ([fe80::f37c:c9c2:6d9a:9543]) by DB3PR08MB9010.eurprd08.prod.outlook.com ([fe80::f37c:c9c2:6d9a:9543%5]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 14:33:32 +0000 Message-ID: Date: Fri, 6 Mar 2026 14:33:31 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 9/9] gdb/python: add accessor helpers for __dict__ in Python extension objects To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20260303161659.397427-1-matthieu.longo@arm.com> <20260303161659.397427-10-matthieu.longo@arm.com> <87zf4opwhz.fsf@tromey.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: <87zf4opwhz.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0666.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:316::17) To DB3PR08MB9010.eurprd08.prod.outlook.com (2603:10a6:10:42b::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB3PR08MB9010:EE_|AS8PR08MB5896:EE_|AM4PEPF00027A6A:EE_|AS2PR08MB9320:EE_ X-MS-Office365-Filtering-Correlation-Id: fb017082-f4af-4cd6-b963-08de7b8d7de5 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|376014|1800799024; X-Microsoft-Antispam-Message-Info-Original: l12M9jZuOxVQS5CRwo+ayxF38QbO84EA9rb3k9V11HXruSk7leO6mjc17UxQeaFyTw6KZOaOOUKesL4pBJBmT2+6ljVp/Jn2jSKUGwqOlwGpko57Mo70yY04ZoeilujM1U/pUdzt8R07+k5E46dm/pKGBt9trUy50f8QSHrTbJpMBBjY1DhR2YS+aTvZn/Xpdwr9ZAHFpjYCL7AXLRlKSAC6EDFgQ8M5LNkp30Ik0diHIAwh972awXeZeWULK7hpfuw7Br7vAqoVP1u/GvIMr1Icvrpyrny9Jc9Lmupkr6X3q+rn2vLtPTgKnSPMzWJ0Gc2A6ID1loqLSDw5ka8sTCm2iixzKe2NNt/EgChQ13DBHwwFa0U44RXDVf/AwU4NOGwyxpLFAuMMf6uxaLQqaWNO/ycEoYmBNjOmJ10yNW69ReNPjcKYL1Q4hvUlYvasP1Uv5s3aCe0fDJSFNR14/NFrdo18hOLt5gZnxid8DFt5Pohk2Zgw+pHOyvT+Qw4qV6f3rQgVZvj0CoSE7/b7kQXEfQITrekqlyOIsVRVrKMdPQO6RLK43w3bVixeRnzT+vi59S1nURIpgh9Eni1k1QpMesqqfvA6KoLtJZhdgBEwHs1GHWzoCisG+nYZCDTLdXTeK2gqdZozZd/Rugr8OlQR7nxtiNd8jfTaLLUNgrSqIe1DmsnvhoTnDk2eXT+TqBbENFtrSCxA2UPEg1in6iROSb0AU0FlT8NENeY181Q= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB3PR08MB9010.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: tW783FWpLz4zz157gHrp1Itt1gGawo21XNrYpPnrb1eeNcInJw4lnrhtFa9qiDOJ8SNg9jh0Cv2fCfUZSdcoYN1cj9+CdtLAkpDa2l9l5kKa5vi3sMkF5uVSh4ni+y6G+UcMijbFHoM8IlKif6ow6s0CcDZse9wAaxkn0yMUN9NYoEP7pXAKhekLAR8VafloxlN+Zc4qyBsiAr7cAokHeJjRiVcte470DK8JMs3O6JAo0IepTAOdc4lICoHdUKmAJjtKwgOocZA8OPLbq4bKWp3jC/m2mDureme36Nk8mILRDqj6flPEi/ireq7GlMp5BtG8aG6vAz7wuQa3kL3cEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5896 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A6A.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 68b3603a-9431-41c4-b009-08de7b8d57b7 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|82310400026|14060799003|36860700016|1800799024|376014; X-Microsoft-Antispam-Message-Info: 2AdSOHw48sA8e3RBlb6d3CgpCy18PjSAA7wE3p27S8/gzvdL5t/rbLdzK2nAIO08TUiuFMYUVBhTrF/1CsVWG8lM55VXPAOlibf+B3FTD7C3NgefcyYCJyOzawGgWQdDlrvwH+CMDRV1/0YRxORVeIXXt4Pbk2yItguupLHfGMGGAhEyvfpXDGZJ8UrZhd6ol+qL67U+upl+SL+TdZGivU5icW1d8LtknQiBzzfzzhVqTxFz560rI7X9HQ94zSJLTyarsx7Yl2Zgm428holwTe/cJvieBtvYUChZzcAiUNo38rywg2+MLxSMqmrVHd4F00nBqE94wcr+NCCdtsMqamQ0wv2udq+BnbOUQDKfMJ0Md6Y7T3D0yPLl1Z8cxiioMw4V5NGXUAh+3n4jJus9IU1ZzPAfqK6Y3mTh0OJQhWeG+rFGMJnZ3X94KeLuCHDPp6DIEpwE1XRz+XXAYep5dy4y1BUa3OpzrLxzXLv+TJHC/S1f+LuDSrN9k8GmkZip2b+rbnm0zn2AhadLp+hinnlduz8GlrgHtTCkG4bCUCHNXpMfXuGobEA+1QrYLR3hjtuf/X1SWOquKJDOq8dXkbaLBJ37hmZJQZ35CDSMGRd8j/TRXOqUpMF6S13++GWxTl4y8pce82nSx8XI6VMNO+zUjuJClVk4OKplGgiF2pNBuJzjHLeJAF99DRXUkS0XZoCCMu4UGWC3239c0cwbQaglXRaWaLRezEHLl472q6wEVQ0aRkyKwWF+4Qef+UYy+qDgV9jYwCwZvx0eRoSYqrElClK1WEwF0VHhnC6Z/Zw= 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)(35042699022)(82310400026)(14060799003)(36860700016)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kfed2YpqRqOZEHW8Uf6R4Ixkbgcs2J/ouspbGXC4GJOtospvDdlcvXQuOYirQmY1/1HnBQdgV26dxgeSRulbGy0pnmINeI6+fXzqwKPpbITXvlggnNqchrPk3QcGeQ9XkJQxLrccRUXt+DtVWOipc7eefvbuVvLK2xjCVaNWKECLy261OVO1vuOmqCSGe1bhfjpgKT2aN/yk9cg6arFi89SOrORuHbsof8h2ej0X33z655LeSap9VrbnPm8QNrUtJjVolDaRoY4qExzBQQqUa/JRZL1lyxMaK2bTEADbmen+eNnrA46UOhZEwfAzcEbNCWPr7et4jzMwFK6NJaGLjo5dCMw50eeOsCDxhZpGM2hLt+NDzHWxfR3lE7QzdDNhmH6+BdqYadKbVG5rJFn8pX08JPuaaTjVIY6Br4+z2GJA2rhSoX8MjeyetDFYaPZ7 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 14:34:36.5576 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fb017082-f4af-4cd6-b963-08de7b8d7de5 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: AM4PEPF00027A6A.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9320 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 03/03/2026 19:02, Tom Tromey wrote: >>>>>> Matthieu Longo writes: > >> A previous patch centralized the creation logic; this patch focuses >> on centralizing the access to the dictionary. It introduces two new >> macros: > > Thanks. > > >> + #define gdbpy_dict_wrapper_PyGetSetDef(object_name) \ >> + { \ >> + "__dict__", /* name */ \ >> + (getter) gdb_py_generic_dict_getter, \ >> + (setter) nullptr, \ >> + "The __dict__ for this " object_name ".", /* doc */ \ >> + nullptr, /* closure */ \ >> + } >> + >> + #define gdbpy_dict_wrapper_PyTypeObject_tps \ >> + /*tp_getattro*/ \ >> + gdb_py_generic_getattro, \ >> + /*tp_setattro*/ \ >> + gdb_py_generic_setattro > > I wouldn't indent the '#define'. But I tend to think it would be better > to just use constexpr functions here. > For gdbpy_dict_wrapper_PyGetSetDef, I tried to use a constexpr function at first, but there is an issue. I am not aware of an easy way to concatenate strings with a constexpr in C++17. This code requires C++20. static constexpr PyGetSetDef configure_dict_getter (std::string_view object_name) { return { "__dict__", /* name */ (getter) gdb_py_generic_dict_getter, (setter) nullptr, std::views::join (std::array { "The __dict__ for this "sv, object_name, "."sv }).data (), /* doc */ nullptr, /* closure */ } } Please let me know if you know a way of making it compatible with C++17. Regarding gdbpy_dict_wrapper_PyTypeObject_tps, I am not sure how to expand the array in the calling code using a constexpr function. Please let me know if you know a solution for it. > I'd also suggest changing the name, the "PyGetSetDef" suffix is kind of > un-gdb-ish and anyway not really needed for a function, since this will > be clear from the return type. > If the code is convertible to C++17, configure_dict_getter seems a good name. Otherwise, gdbpy_dict_wrapper_configure_dict_getter ? Regarding gdbpy_dict_wrapper_PyTypeObject_tps, what about gdbpy_dict_wrapper_getsetattro ? > You can see an example of doing this in a similar-ish context here > > https://sourceware.org/pipermail/gdb-patches/2026-February/225253.html > > Tom Matthieu