From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id P0IKDK58WWgt1hoAWB0awg (envelope-from ) for ; Mon, 23 Jun 2025 12:11:26 -0400 Received: by simark.ca (Postfix, from userid 112) id 1F7231E11C; Mon, 23 Jun 2025 12:11:26 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-9.0 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED, RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 E82D81E0C2 for ; Mon, 23 Jun 2025 12:11:24 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6A4963846719 for ; Mon, 23 Jun 2025 16:11:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A4963846719 Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.133.114]) by sourceware.org (Postfix) with ESMTP id 420D23846E53 for ; Mon, 23 Jun 2025 16:10:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 420D23846E53 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 420D23846E53 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.114 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750695029; cv=none; b=vVsHUyASwMKC4EERkoMAAT9eset0SU/SDSKnxP4QIGdDCbiqNHxNdj+QScM9JrqHNHAqid5+rml4gGx0Mw6JBPAVk5aftiljxTujQPuSVBX+0gw2TxrN3XBodBsBH9N5DocRqzEMQdAP+EY1Y1yb6fYrVSgClEG9lUuBr7Vai9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750695029; c=relaxed/simple; bh=FWt96xw1BZhODM5NYlq2UwYRQMwlM+DNvE+rsEoHBRI=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=pj2esA0jFHbVctx/VFxlfW/Kq8KgFv3kalAo83XEjGDdlkYp/ho42OzMjXfrSiMMZq0zVbCkwOj9GcoTyQ+0pTji83c2TWXBdHJ7KZQbhvYCuvhDe6IUClG4+LlMTRcwjx1LzR7MVa83svxxmyPcWBnS9LPq2Md6fuslqnOo+WM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 420D23846E53 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2123.outbound.protection.outlook.com [40.107.237.123]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-362-o4EsE1c1OZCr0p7c2EfI2Q-2; Mon, 23 Jun 2025 12:10:27 -0400 X-MC-Unique: o4EsE1c1OZCr0p7c2EfI2Q-2 X-Mimecast-MFC-AGG-ID: o4EsE1c1OZCr0p7c2EfI2Q_1750695027 Received: from SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) by CH3PR17MB6292.namprd17.prod.outlook.com (2603:10b6:610:14b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.27; Mon, 23 Jun 2025 16:10:25 +0000 Received: from SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::6398:7dc0:7d88:5a4d]) by SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::6398:7dc0:7d88:5a4d%5]) with mapi id 15.20.8857.026; Mon, 23 Jun 2025 16:10:25 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [RFC v5 00/19] Add Python "JIT" API Date: Mon, 23 Jun 2025 17:09:55 +0100 Message-ID: <20250623161013.650814-1-jan.vrany@labware.com> X-Mailer: git-send-email 2.47.2 X-ClientProxiedBy: LO4P123CA0581.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:276::11) To SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR17MB5365:EE_|CH3PR17MB6292:EE_ X-MS-Office365-Filtering-Correlation-Id: dfeda887-1928-42d4-7ec4-08ddb27075fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+Scwi6HmgLCPAxFoYQmx7AmUIQADiDNj/AmTqSdqx4zVb0RNC1EXLDsSSgSu?= =?us-ascii?Q?Q2HxjQl9AE52kGKE+ih9BtIR9pXN+4XIgBcJFhntsW9xOeLhMvEwxFbziBtE?= =?us-ascii?Q?C68DAJVbDbQVORWlATq6wgZOsaywbJEpnIE5D5YOhLEr6EnclXdvU3CGmsfQ?= =?us-ascii?Q?pkuQiapQSQriXm4fVVLFHyAeSnH2C59ulqZCiQX9xAHJZZ7WGStit+r9elHE?= =?us-ascii?Q?NdhVbnmZnVHjtzFZFlALyGin5MiPNlyjVCXMpGbEQlLf8ucdTShUhfvWSP1X?= =?us-ascii?Q?qIftdkYhB9afooMh96ILqeQZZsdkiDcAHB/pN3v6L6SbaS9EpHIhQIOMp5Rg?= =?us-ascii?Q?LMCrbYU9NNTC9ReRYyoL5GyaE7nlkPErbMzESUGIeEUPQUnEnEtlvJHZsMQK?= =?us-ascii?Q?owgjNrQWF2b1m4MNpl9lh4+m3a/UVnH7i0KC1EqiioACUgoiwaDdVtNQTBhS?= =?us-ascii?Q?odxSl0P9TscA9JpDLlmRPHmG8yWJ55dQHZQ3dhYoWwziMTLrzD0X9mFfTW2k?= =?us-ascii?Q?kSmZwkahlWdVF3DqvNYKsMzh1AlI+ON8aZkXJ0cKJsgrMHcKXk1IdJIrfSqW?= =?us-ascii?Q?wpDPsRy3joKXUKs2pgPgN3n4I4jYzpqdrQYj9q27qEu7SfP7rWBx9OhwzkiT?= =?us-ascii?Q?j8NThsDVuo//mM+kOuroqKbvtO4GAn/51qgm8t3lDXV72UpqYN+0WBdAipBo?= =?us-ascii?Q?nl9AG48gGdQXL4dUfRSE1ah444b2JAPZGZLrWlpT1QgOLzl1Ds8JTvhY+0/f?= =?us-ascii?Q?sYdua2ambCtGygCy3DhzL3txSxni93PsDAejYLU/KJPiAmocPBzl4eFBAOtD?= =?us-ascii?Q?2H3JcwHOrFu2TPQbcS/0TKfestMASZG+ofYOMApt5Xhrwn5bLNFi6n653DXZ?= =?us-ascii?Q?lYPzV69/ulWpT+gUuA4hokLR4FStVLRacH0LlAvbqE07RQOVvITI9BHY6dm7?= =?us-ascii?Q?g+qNLkxUw4syLaRueJkNIbDSOYOXaaDwVveF0EGuzB6tKkUFbrOjOP8krGVD?= =?us-ascii?Q?dmq6hsiKPd8tXvNP7WtBQjRK0bB2UD472aJzJ6OgsjfShOBZruEpzQBXDzmv?= =?us-ascii?Q?4mLzTqBHynSLdnaseMlJux5saVQC4Za6FTToAgmg/vzODQ3rzghuMZI/IItT?= =?us-ascii?Q?lwcw0IN7B+fWiqiOBrrNhItiL5Hd4qMvI1c+oeRLlNrWkYWQufiLMFPL8EAX?= =?us-ascii?Q?irdKFSiGd7YgAG8cwwA4viHuhHIx5p3298xZ+sHjx27g5rHI/ma3rz464iue?= =?us-ascii?Q?S3Hr6ccI86tax93TzR2WuSPYA4tYKXgakoTjMO0S9NPBCpKi/u9UFTJ24PBa?= =?us-ascii?Q?VZjY2n6HO5XwuCAC7TJpSb5CFB2YsUlvSQTRF+RWdRI/HwrpxDwoxN7y21oE?= =?us-ascii?Q?ebqwuBo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR17MB5365.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WRTnsC8Fn8A8e1JuwwYQmVQZK0RfEijDWzL0bWCAK8YOx+uG/EzVW/KH6Yl0?= =?us-ascii?Q?oKYag85C81yBnNjJfENnqPFAbpw5vy27I4ssczIRxL2hBB0scPDT4WHn92Xd?= =?us-ascii?Q?kKxQjmgdGzZrxDffEbmKmj2/Qs6qQ63LyXnLayevNZGsAC+dTKqUdT6y3xkk?= =?us-ascii?Q?w8cD7o//7YUykdz51pX7caNt6AB8vvPyhuEZIGhYMDOSgREG303xgy6YvEYw?= =?us-ascii?Q?pWSVtrmLZVY6EcY35V+xm0XmwBr4kz+9EemQBnalACaHVYP3XaeslmN/qTnj?= =?us-ascii?Q?Nk8u7ki1NXEUdUfisebwYLrfgVGwswQu7J52tdpLSVgLSe9A/cof+q8bdFKP?= =?us-ascii?Q?LfIkjf0jD01zp9cxD3CJoVAdLoe87SbYbdJwYuiGFraOCT4ocv4K3XJuxY22?= =?us-ascii?Q?gw3vW5m1PbNKBIs+fikiVcRQDwtvuY+6XUyqItP7f5H5Ad0I5vIiS5p3DF4S?= =?us-ascii?Q?zNd//xmhsjl+6E3Pxjy4HhEhVam9hKxkrUcwRWOCxAm2ZDdXj+14QNKZiLbP?= =?us-ascii?Q?i366PLiozdUz5tywvX9gnmq7D00sjLItvETHoNc7t7ITCRJtCVJXNGddGHJw?= =?us-ascii?Q?X0qwZiGMNwpKY3Rip5jr4lW/d5RuDUAMbxXy/VvUp8Na4lWBMESWARL0QciO?= =?us-ascii?Q?J3OUMAhjKRXrkUoCoOT8QKukvC2dCi9zxuex6EuEY+60ggtCmvp5uCkdSeMW?= =?us-ascii?Q?V3ddv3ozK1zq+Csv2XHKwVtK1kdgMLV3FE8F0kITYI5uiDtXSllPUnoGbV84?= =?us-ascii?Q?+tOmWrlsqq/Vh5dBLVoACXQEelWR8ghqty6f84NsaGfD4GQ0oiGqiCBi/Rrr?= =?us-ascii?Q?bsjLPkPEao6+UB5zl6FTcPivOdMgqVIXMOBUvg+PHVgyQ7lCktqh7mp0ALy5?= =?us-ascii?Q?go1HTUe6eRFqfbkD8sMcdAFgSxgTpsZzdtgdvwH23nefAe5g6a1w1p2dW9tT?= =?us-ascii?Q?a+veUqWjQms8XIiB39iNzC6KWMh9gi/WpNMqaY5FKq9up8RreVI54OicPC4X?= =?us-ascii?Q?6gVDGq9NR49p0eyCHsCWkY86AQmiHgILoGqBXiUaIiCGtzPormMQ9WCuldx+?= =?us-ascii?Q?/87VX+vPO2aCQr7uyXauAF6FHfAfBxnI/ciFLxxpSjSKK5CGS9UyP1qLe/D6?= =?us-ascii?Q?+3gJo5R/XYVDvpMsU29pUC3r+wab/R0+DbN6E4a83BM13DbId1sHSIeJlHIn?= =?us-ascii?Q?6rmDOZt3tMkOOfI7n4X+MMQA1E2tYdFXEnjxjVsK9eYPHifLh+4peF2ef6JM?= =?us-ascii?Q?yyz12hb4si2KZsI5l5g2q1MjYXtetyTSiIqfDTOoKRm+6+j8VKPOzkglP+UM?= =?us-ascii?Q?SZGdz1iwILVFFXCD0gXLABjl2tZs4cQ550o2R0wAiCgfPJaEOX/Aq/Df2E71?= =?us-ascii?Q?iz3ZQiEvmOQQV26QOEV0vyOh6dX5O5Ib/fHQqxjj7Oge4UAPvxnwdp6he5ew?= =?us-ascii?Q?lmiZbzZ+yWIfRUH4xnv0AVUDriFFO1Fjw/u+3wUaF+0il7FX2vS/jDsq9YX2?= =?us-ascii?Q?QBjz103Gnj3IKv4gytzb7A7q+AFKIClGjfT1AhXTN++wvQwwKvtj9em9bDuN?= =?us-ascii?Q?MpUKGQRfopHX3CZ7lx2B2OEmhRmo1e/tJjjzAGcu?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: dfeda887-1928-42d4-7ec4-08ddb27075fc X-MS-Exchange-CrossTenant-AuthSource: SA1PR17MB5365.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2025 16:10:25.1014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sYGHNSdRTIA7t5r/yKujDoZJsgu1BbG6mw1bZn87IsTxnqcutzIqXCpnCTWBtKLuQPrgiZzoqhNyZbgZW/3fVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR17MB6292 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: pEIed5bVfR6tZxord3EBeni-v8Y4Qh_f5Q7zw2A1Cjw_1750695027 X-Mimecast-Originator: labware.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=WINDOWS-1252 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 Hello, I'm very sorry for the delay, I've been swamped with other work for last couple months. This is a v5 of RFC series that extends GDB's Python API to allow interfacing with JIT compilers in Python. The v1 submission is here: https://inbox.sourceware.org/gdb-patches/20241111145522.560028-1-jan.vra= ny@labware.com/ The v2 submission is here: https://inbox.sourceware.org/gdb-patches/20241121124714.419946-1-jan.vra= ny@labware.com/ The v3 submission is here: https://inbox.sourceware.org/gdb-patches/20250129124347.1391900-1-jan.vr= any@labware.com/ The v4 submission is here: https://inbox.sourceware.org/gdb-patches/20250205161018.2028175-1-jan.vr= any@labware.com/ Changes in v5: * Move ranges_overlap utility to its own file (gdbsupport/range.h) * Delegate compunit_symtab::maybe_contains to blockvector::maybe_contains= . * Reworked commit gdb/python: add function () method to gdb.Type object so that non-arch owned types are first copied to arch and then used. This way, we do not need to expose internal implementation detail to th= e user as Tom pointed out. This also means that commit gdb/python: add owner property to gdb.Type is no longer needed and has been dropped from this version. See https://inbox.sourceware.org/gdb-patches/20250227222931.1404787-1-j= an.vrany@labware.com/ * Dropped commits gdb/python: add template function to implement equality comparison gdb/python: make gdb.Symbol comparable for equality gdb/python: make gdb.Symtab comparable for equality They are no longer needed because recent change that made these objects memoized. See https://inbox.sourceware.org/gdb-patches/20250319212212.490510-7-ja= n.vrany@labware.com/ https://inbox.sourceware.org/gdb-patches/20250319212212.490510-9-ja= n.vrany@labware.com/ Thanks, Jan --- Jan Vrany (18): gdb: introduce expand_symtabs_maybe_overlapping gdb: introduce compunit_symtab::maybe_contains gdb: update is_addr_in_objfile to support "dynamic" objfiles gdb: introduce new function create_function_type gdb/python: add function () method to gdb.Type object gdb: use std::vector<> to hold on blocks in struct blockvector gdb/python: add gdb.Compunit gdb/python: allow instantiation of gdb.Objfile from Python gdb/python: add unlink () method to gdb.Objfile object gdb/python: allow instantiation of gdb.Compunit from Python gdb/python: allow instantiation of gdb.Symtab from Python gdb/python: allow instantiation of gdb.Block from Python gdb/python: allow instantiation of gdb.Symbol from Python gdb/python: add add_symbol () method to gdb.Block gdb/python: add more attributes to gdb.LinetableEntry objects gdb/python: allow instantiation of gdb.LineTableEntry objects gdb/python: allow instantiation of gdb.LineTable objects gdb/python: add section in documentation on implementing JIT interface gdb/Makefile.in | 1 + gdb/NEWS | 9 + gdb/block.c | 82 +++++ gdb/block.h | 69 +++- gdb/buildsym.c | 6 +- gdb/doc/gdb.texinfo | 3 +- gdb/doc/python.texi | 317 +++++++++++++++++ gdb/dwarf2/cooked-index.h | 11 + gdb/dwarf2/read.c | 11 + gdb/dwarf2/read.h | 3 + gdb/gdbtypes.c | 67 +++- gdb/gdbtypes.h | 30 +- gdb/jit.c | 8 +- gdb/mdebugread.c | 32 +- gdb/objfiles.c | 34 ++ gdb/objfiles.h | 14 + gdb/psymtab.c | 21 ++ gdb/psymtab.h | 3 + gdb/python/py-block.c | 165 ++++++++- gdb/python/py-compunit.c | 411 ++++++++++++++++++++++ gdb/python/py-inferior.c | 10 + gdb/python/py-linetable.c | 243 ++++++++++++- gdb/python/py-objfile.c | 172 ++++++++- gdb/python/py-symbol.c | 139 +++++++- gdb/python/py-symtab.c | 67 +++- gdb/python/py-type.c | 132 +++++++ gdb/python/python-internal.h | 5 + gdb/quick-symbol.h | 5 + gdb/symfile-debug.c | 16 + gdb/symtab.c | 90 ++++- gdb/symtab.h | 10 + gdb/testsuite/gdb.base/jit-reader.exp | 9 + gdb/testsuite/gdb.python/py-block.exp | 45 +++ gdb/testsuite/gdb.python/py-compunit-1.c | 24 ++ gdb/testsuite/gdb.python/py-compunit-2.c | 28 ++ gdb/testsuite/gdb.python/py-compunit.exp | 130 +++++++ gdb/testsuite/gdb.python/py-compunit.link | 10 + gdb/testsuite/gdb.python/py-jit.c | 61 ++++ gdb/testsuite/gdb.python/py-jit.exp | 57 +++ gdb/testsuite/gdb.python/py-jit.py | 118 +++++++ gdb/testsuite/gdb.python/py-linetable.exp | 67 +++- gdb/testsuite/gdb.python/py-objfile.exp | 50 ++- gdb/testsuite/gdb.python/py-symbol.exp | 13 + gdb/testsuite/gdb.python/py-symtab.exp | 22 ++ gdb/testsuite/gdb.python/py-type.exp | 36 ++ gdbsupport/gdb_obstack.h | 52 +++ gdbsupport/range.h | 35 ++ 47 files changed, 2822 insertions(+), 121 deletions(-) create mode 100644 gdb/python/py-compunit.c create mode 100644 gdb/testsuite/gdb.python/py-compunit-1.c create mode 100644 gdb/testsuite/gdb.python/py-compunit-2.c create mode 100644 gdb/testsuite/gdb.python/py-compunit.exp create mode 100644 gdb/testsuite/gdb.python/py-compunit.link create mode 100644 gdb/testsuite/gdb.python/py-jit.c create mode 100644 gdb/testsuite/gdb.python/py-jit.exp create mode 100644 gdb/testsuite/gdb.python/py-jit.py create mode 100644 gdbsupport/range.h --=20 2.47.2