From patchwork Thu Nov 21 12:46:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Vrany X-Patchwork-Id: 57743 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 BEBEB3857350 for ; Thu, 21 Nov 2024 12:48:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BEBEB3857350 X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org 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 DE910385801B for ; Thu, 21 Nov 2024 12:47:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DE910385801B 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 DE910385801B 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=1732193252; cv=none; b=mU6MOCrxo9nCdAz55fWE4ftBKYmuSDzCKqz8hkc5kImMk2l8YQX67XvLv9fl9VwWxtWUofvaxpVe6hPlAFKmLgHuO95rn0mrs4rspHW8KL4yOiHfo9jw/UPMgEAg5uVHfPh53mK7S5Eu5fShl8bJurvMpm1gMye15u+7xUbOgpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732193252; c=relaxed/simple; bh=3OPbwR58HhkqeoKfw9l/mo67r1an7YdgKlR3Ge4DQ0Q=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=jz2EJKdsCjC/Z7l90QOq/q2PoZBQdkjvgzwOiVALX9NapDheUt0OIO3B3LCq67aatuf/hHbl4w5SXj3S5LcpV93CC0WopWVw6T2m0ti/UKQgvZsN3o06GOCURSeFN45wjVvK0RgiwZwTFgSCkSGgFOIT4F+g89Se1eFfNvR1nxM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DE910385801B Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2172.outbound.protection.outlook.com [104.47.59.172]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-660-nXUJVoIfNee219lFxGisjg-2; Thu, 21 Nov 2024 07:47:30 -0500 X-MC-Unique: nXUJVoIfNee219lFxGisjg-2 X-Mimecast-MFC-AGG-ID: nXUJVoIfNee219lFxGisjg Received: from SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) by SA1PR17MB6504.namprd17.prod.outlook.com (2603:10b6:806:337::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Thu, 21 Nov 2024 12:47:26 +0000 Received: from SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::38a7:a6f2:3b95:bc26]) by SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::38a7:a6f2:3b95:bc26%5]) with mapi id 15.20.8158.023; Thu, 21 Nov 2024 12:47:26 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [RFC v2 00/21] Add Python "JIT" API Date: Thu, 21 Nov 2024 12:46:53 +0000 Message-ID: <20241121124714.419946-1-jan.vrany@labware.com> X-Mailer: git-send-email 2.45.2 X-ClientProxiedBy: LO0P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::6) To SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA0PR17MB4314:EE_|SA1PR17MB6504:EE_ X-MS-Office365-Filtering-Correlation-Id: 559a5eaa-9155-4a34-c2bf-08dd0a2aa72a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014 X-Microsoft-Antispam-Message-Info: +0rak5K1Cwj4N4+di3LZBmM+PvlvPXxrK7HhZcB1R8EjbwPwEknaSWrK/DzDBiDfwndXupa3heGWrr2THxFms1Y8U7SIexeIY8YmENoa6yhYiXZJZcwJ09M/JDYUm+oIzcwWLRd/ml1Hm6IFBDWBxJVCwKHTzPo6iWD6n/Tf1toIP0WfskXNHdF9vXEH1/oWzuJ0ucKOJTLEOS2jFdiBY9iyFEq2XfOZe/13jeQckEDU5E2S32HYJOpEWAkOcV/7O2MZfzD62J1Wvfugjy2eGgFG36csUqKWc7W4xrnHtyji2klIJHs8aYZ84XGmJ51xZyDYYIX76+8kH85mmMxmhbIYK4myfcizhSjKyzGyvLK0YNkcCQKel3dVnwYFZiYnPTdDxZrGJ/dU6o2/8kWVmgppvbyHB4etGW5DeHqTl/rDlw90iBv6qyPZO1kEbIn8Q/MiAQbUQ1cDqQj400WTHaKGnzZ0bXWQs43KjN23DbzO0NJhsNlbJmnHHwBU63dglxG+GmPDNVMUE3ovr+WIJm927t5+NM5+t2t29nyQvak3Pf2at0xizqJSIKtCTqDu3tAWgHxZGTtYUPNZdNOVk3j6q0GwRCkD6rT7I6fjYwgIyHXB+EJaqMgG6JnRbrEslqmbxwlrrjdfl5FLCcdhB4HP/jYUUZfSq7zb7t6MgDfbp5cXazH+ihRZ/H5j1H2zXzIrF1G2bQbTW51lZ9uv/Fa5iEww2LZHIdihxEI6V3JSMiM+9PNZ1AYmZ75ybJ0/pmEa7DT42KPC5uphQkO66B6nSEz6bQCQC4pWzqGsxHOOs3EbRcmpQ/PQ3iHSbRRe7TZa07Tc/a2vxI88Mx0nacqXyLpYWITebDbpUHETu151HuMWQ0Mr7XPOA1xFlG87B8bhYYH+7xH6vGEcQvQQ/3PGnr5n8CWU2K0njtpYD/TiZytOcmVmSTDSN0uw4I/pmrQxRzoJfOlTs1ydsG0ivROY+q52yAJBxku3p+Bc9zqSMAyGC25W/wLMmnuwWdHxCmP0fLGo3DAn1luRq2cmTabHA3D11yV9MdZ0bZlIcqD5vODuLxeFvbg5gZQQA9ee/nJyxjOE3CHkB0o+dhsZa2bbvEUuIudATIVFET7xtm7WCnWBSj9HvSRgD77Kn9oMAs5Kzvl39pr9Tlfkb8QVwBUSPr6FIAgdxpbMcc3jqsOHeikKIfmYrwBRg1QS2r4GhTk977RlYgtN9ezxY1+LnvTjTRY20QfUj8lcCaGEzebiMUUUEoMGduN5gwGmrv0N X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA0PR17MB4314.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jZuMPzpnGT4CGP10/URon6nTmC0wCaQtFTMIbtgk6413aQAH2LxrvA6TJXQLWvBk3g3sCNeUDyQQ9nB245fMQoBVJlabAfE9EJbQJbBllKX93B9a3gDzcjOHO59Z+piSp6WGzjfnMl/4VIUNeHaOmj001BzhOtadIqpEAa/WW+Y8XDSRh1PC5J3/4EDu0UKEHRnQ2GREwTWO9TnNF5QdLK4B0xBlUANUv+g6P7VJpuRZ5cakPSFvC5xDbBuP48WoQoIt4I6tTB0kCiBcnHrx4yM2Tnsg609e2zbkQPyUvxIILaze9f+Je8i2G+TTLmnVba0cMWSLCCCHxGIGoRMUqMGMiL9dwSyflVH8OQdCO3DiJ4CmVUkCdy4GgKvIvDdImE1nDPzUYdleGkeK381YHEIfjQvRh30DYg3HUx4pY3OqfPSiX8Ccbo+zC1SFu0OYHNNotRron1SEUsYjbVK2H4ol3ApTrY6/jqzOx5ghDVcr+seFH2j6PKESc4IVru7y9k93JVt7nhR3EhiRhbg4nK9qkOQeCJMqvJCSagr8C8NQ2skhYux5lQv274y6xs7bqOJ8NEcWgw0E70lI2Gi43lZImWQ5rDp/rRYk8VlNOUq6Z4x75pl8MJdrwhUc+IwIOsKM6KU7684YeybMnVRWmWS8pgGoJnYVCik/VCTkARXrcfpzDW7kluh20YtsMbWrFharWGu4WO4CvaWpdSxDxSyUigDe6b/Sih1lRj/9o4FIjg8Mmqn4g0QyCyRxz+W+PZ2P8VPmoabe9bO/jWYNMp6KVBtpSIyRqRtmgnFkK7IquszDIBA4c8gEojTgAMOKR2TvgaJwgZBP2nq+xu237JX3kKJ5GBLF4KlfHDuqEj5H7wfCiF2VMitOJwJSbaeN7vUeZHmY5GeDrsn4Rd+qRdX16saf8BbvEEfeRTr1dvLbvAEDYQ25QVQWjw0CY2UgfUch9QGxgvfRH7HfW5r0l/O0v74OuksKzp3APgxCBzsfouzY3ED0wkk9Z7MZXkxebVYjGYbbhXrttTFs/RAFmwj3iWVBgxVWxkkUcgmto7KwaYHWgZOUJE5gtia8xcWL2x/ghR07cuKbyMzikVziG3q5M/XzoGWTcqmOzKRFrceTMjVpc3W9Qw0l8Y0xAbXXQFgs2KNEeYnSOB7YfW3rE7KnI8FNXsjWspjiZgN1HaYvmu/zNpgn5j4s707K8qjU7+LtC4Wwi+EZowPzpChIqgAWGo6u166jZZCwqwxCNh7W2FZl8eSszxmB7tj0QGO5my+XSBmIC2oqkfFz0vxkyGPKMu4P81C/b4eB2gmggrnNhO6Q2g2IsYnPjImFZMtCofDm5zc/rqmVSrgxHdkQrB/xLbPkrvYJYnKw9x5Q68NltPcaTrvWbioXh5TPR7qaxCAZMa4REd4dPhjiKrARnMq1HRvqrayzST5AYP+vhAVmedc7B+2h1PWoO/SRtUzBQ5ggctN/uS03c0VSkLgH1HyGBL3yB2wVND5XXeKo38mdKIwgzUSk3z+QRf+XZSbLPLmBkNdw1Zr8imkMSvuknxzodZ+d0EOVjgrflH7tmrUIKCZg22Cyeq8vuvCFu6ow X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 559a5eaa-9155-4a34-c2bf-08dd0a2aa72a X-MS-Exchange-CrossTenant-AuthSource: SA0PR17MB4314.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2024 12:47:26.8290 (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: OMX5wq19tQLhwARQpAjJHMKH25kP0sU1LhR9InxMAc4hJ7OzpePbsHix7Dx00tFTVX0EEMkDtJ6hxLhYhpn/3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB6504 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: Iv8jH8HY2nPeNnIt3Rej1XVYcLvFhIWYn5Yb0BIjW3Q_1732193250 X-Mimecast-Originator: labware.com X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP 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 Hello, this is a v2 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.vrany@labware.com/ Changes in V2: * addressed all Eli's comments to documentation parts * use nullptr instead of NULL thorough this series * avoid using auto in cases Andrew mentioned, also thorough this series. * updated commit message for commit "gdb/python: add subblocks property to gdb.Block" Thanks, Jan Jan Vrany (21): gdb: update is_addr_in_objfile to support "dynamic" objfiles gdb/python: add subblocks property to gdb.Block gdb/python: add domain property to gdb.Symbol gdb/python: add void_type () method to gdb.Architecture object gdb/python: add function () method to gdb.Type object 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 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 | 17 + gdb/block.c | 59 +++ gdb/block.h | 56 ++- gdb/buildsym.c | 6 +- gdb/doc/gdb.texinfo | 3 +- gdb/doc/python.texi | 322 +++++++++++++++++ gdb/jit.c | 8 +- gdb/mdebugread.c | 32 +- gdb/objfiles.c | 36 ++ gdb/objfiles.h | 4 + gdb/python/py-arch.c | 16 + gdb/python/py-block.c | 196 +++++++++- gdb/python/py-compunit.c | 414 ++++++++++++++++++++++ gdb/python/py-inferior.c | 10 + gdb/python/py-linetable.c | 243 ++++++++++++- gdb/python/py-objfile.c | 170 ++++++++- gdb/python/py-symbol.c | 153 +++++++- gdb/python/py-symtab.c | 70 +++- gdb/python/py-type.c | 54 +++ gdb/python/python-internal.h | 38 ++ gdb/testsuite/gdb.base/jit-reader.exp | 9 + gdb/testsuite/gdb.python/py-arch.exp | 4 + gdb/testsuite/gdb.python/py-block.exp | 49 +++ gdb/testsuite/gdb.python/py-compunit.exp | 102 ++++++ gdb/testsuite/gdb.python/py-jit.c | 61 ++++ gdb/testsuite/gdb.python/py-jit.exp | 57 +++ gdb/testsuite/gdb.python/py-jit.py | 110 ++++++ gdb/testsuite/gdb.python/py-linetable.exp | 67 +++- gdb/testsuite/gdb.python/py-objfile.exp | 50 ++- gdb/testsuite/gdb.python/py-symbol.exp | 35 ++ gdb/testsuite/gdb.python/py-symtab.exp | 44 +++ gdb/testsuite/gdb.python/py-type.exp | 20 ++ gdbsupport/gdb_obstack.h | 52 +++ 34 files changed, 2482 insertions(+), 86 deletions(-) create mode 100644 gdb/python/py-compunit.c create mode 100644 gdb/testsuite/gdb.python/py-compunit.exp 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