From patchwork Thu Nov 21 12:46:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Vrany X-Patchwork-Id: 101651 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 BB2E4385AC0A for ; Thu, 21 Nov 2024 12:51:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BB2E4385AC0A 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.129.114]) by sourceware.org (Postfix) with ESMTP id 65C433857810 for ; Thu, 21 Nov 2024 12:47:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 65C433857810 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 65C433857810 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.114 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732193261; cv=none; b=jfM5pY+GaFsDI8Xrr8wvHi/dyeTIq+Fn5BaQ572potntQwwwryrEGDnS6Z0nw/ktWB4Pkt+CtP+wU2ByHy0sOtOCUdT1fwTvUruwkH1BCm0uNi2f/UFjeia7S+9p9uy8J5fXJC7jKpNLzw41f9GPR2oGd0ujc8b90Q/oHsy0w4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732193261; c=relaxed/simple; bh=QqJr1RyM/gL4bhbYSQPKuk7L++GjLjRqz3QLDuiLIPU=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=nvgW8E7VsNTNIbYPWN/4EPZOwn9C4ltaVCKpBKJVGCVDstLkP7faGNAq3WIgxXPE/7weZ5pXSHx3APbcHFehCB+FYD4QT4Xsk316hW02ShxI/djwxaHQNCtzw2nmFt75Dw2gU/z5FsPavsXTxwSF2Jjl1dMcUL5n/iUi1vUZB9U= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 65C433857810 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2045.outbound.protection.outlook.com [104.47.57.45]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-369-rp_cAqgMOVa8ZUnxmAP3Og-1; Thu, 21 Nov 2024 07:47:40 -0500 X-MC-Unique: rp_cAqgMOVa8ZUnxmAP3Og-1 X-Mimecast-MFC-AGG-ID: rp_cAqgMOVa8ZUnxmAP3Og 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:38 +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:38 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany , Eli Zaretskii Subject: [RFC v2 03/21] gdb/python: add domain property to gdb.Symbol Date: Thu, 21 Nov 2024 12:46:56 +0000 Message-ID: <20241121124714.419946-4-jan.vrany@labware.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241121124714.419946-1-jan.vrany@labware.com> References: <20241121124714.419946-1-jan.vrany@labware.com> X-ClientProxiedBy: LO4P265CA0031.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::7) 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: ea11a450-c495-4bea-2e3d-08dd0a2aae00 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: sGnF5kVqZZelV2bByQEmA/x3yV69Vbzdmuy4wdeuJijCRjbVNf/Hcsljd6H2GKgEQsJrCA9zsgaA3c/z/W2zM2K88jdY/1w6/bEZv054zsXPNqFsybM6tA4Vx9185+fUzGOrTIP2q0ZBmUQvTZccY2gB95gJimRaJp3fJcCUZosCw7eo1Vhqka5UiCIUtWW+stYcnFSTlq6r1o4uiNMOI33s3rEd3rQNH+ERfd0x9Dd5eOJWRRxuqI/wHGU2BS1B/kSb/u4ctb8f7M1fG70Bqbmd+hsJUOPx4CMlj+qfrOVGC4iDZt3RFP5lFTeKu1hrdnyM1fc7/QdibyMZVm7dQ59l02OewIWVObMCp7ogjo21xkb49yi+k4QcMUFE8fLapnzGi5epapK5WJQNth1TaaBz5EN8KnaKUHeMCu/eUzAU5tUvKD/K2q7DxMC7nq6c1I67AW9F317e7sc5zTDyY0Ha3n4mmjj6L3SaT4NczRqsPWKAvAv3swSPM1vDJTtPXyaPYQzM0+hIMJDgo6QM9XFKdrRHXwiWo9Dm6laxbnSP25kug3JFwA7wPFF2MUccX3UGRaNcmTVnLx3l60hiuOAYZ/hnP8JpxD0dr7jB4FcC8qzVW+0+0TDAPmunaf0I+fKHm0DMa30pjLY+axzIqzhBDtm2VPU4bCJYS4auxxVVKW+/PcjyWW3aULrdVOLlxRSBKjw/mkc8e+O+bcnGCxU4ZzZXwb4bqYBGUFWXRbfmbwN1U+OSRKVV4si+3lYOKd39cwouB+xvlBuywlDta4dgjNiC+OSqMcR3oscNal6e1bhManP3ZZrTnDS9icg8zeYQDZToIdKUzLUA1RxXIIch0AuN8dtmfRpf0RKQ1zXtt62/80D1x4n9HkiPhAAsMGYfJ/p7M9bHgmufcKswlFewIMa+JlRcK94IfbIKI6bKPTCEPZlPoJcNH9I+pIJFuT4u9piEvarZUlxbJ/wD9SituXlMsleafMwnKwgZ8Ife5or511jPVPze5kBFbEBrEsaOW20PfxLGIpQD3z8zJ39cOYRNkC2rPJHFUL0aHOQAujuCc2gFD4ZXNKMRey0KQDSnhtxTKGNvYCm9wMZ9js8rzWLvzu/Fna2n8GwQ6QJZKKlW+ssDWIR5HgXD3u3AkTj5dI1tfbEj6DHxs70A4ykjZ46DLui7hKtmahof+CWIbGHIK9ZkvVmM6zM+gagNrDHykUPIZml2ehsviHrbzCxnZJeZ7HE7Ln792C6fXHzj5dwi7IJydvNMNr+y9xhiAJ5uVlBxrYg84fmw+dmCxxlrM8fJ0Bx5vOIqhFsB8aMnO7ofQqkCtwDD/Df2EEY9 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: 7jyAEp3QSscubUJzNj1B4eEjnmklmfNvMkfwx4uZITalFXBb1txfmLpabA5a3mxzA59j5MFQuXZGpbsBfNABR4cEw8rEXhoqhNNMiFoEsD8WTC8TxctWVWUUlY+7/FxEfIjKQ3B7rxdGyG3rEKOdBkY2+KxPqbMBwCcC+UIXB0yrKO80VkM0YoVB+EnJyeEkEls7wFMgeGY+uBLgku8BCp4Ru2YoOJBoLrwaWU9MShLKvVxGwYtxE3Vkl5eWGVQKZF7xQcQH2Imsass1Ceucqw6A92/xS+vlBAgcSUsoRDUSNs2XG1VdJMdDvVyUV3iVyNdoH/hclHBNvOHvSGh6x8FyP3J32WDGzS1ZoCvY5fuX5SS87I6YAxa5sZKlPdx696TYrdv8ZO71+b7jG+lrvj01gu6cmPw87ftrolzuH/G/dckz9gtKM16ALFU8RNQI+Y7iEKtnqzO5xwwXx4WEmMB8L/PWLC187BmwGaslwazq//qvdZdh5Wx03J66Bfx5wPcWvw8pZLvyz6ut3QY6NHrs1zs9eOecXuALbztSc+SocAtMx6x5bvLF12bYCcFKtbCWiLDchzdPTbQY+MUe8KiOJdG70NXcKZuU78HMt7MVmxSvK95p1RORklZrufubOwoeNcVzl+9KfqYre8ZTi06aWMhavgEe+BsMCYowVpIy2v0xITnDZwC+1OZ/g+HkRdhPJ1yrrBbKAu0qscJhKZXSg3UIDIDK06K3XHfk0kgtwD+b9Q5ykZI/bWN0uCTW7q5Svzco1pNoarXBkpxC8DA1Pn3roHMhdzMUdJlT1encmY3TLwO20dSvc4mAhIIkg2cmxlPN/Z3685cCs4OJFxuObENQwBiTT00psu1GH2A+ohdmpOzvoBIIO3CKquKre6A7sGLtGXEarIS5CeRG6WwH56pGpoBabN0IDZ9KAOm4IGKpXLL9YXbCo5wr58tExjYBCm/ffonjqDT4XqBELjlXuvtMXo6lwZCC4xwFGcMvmIEJiqJqiYB7Mx2Qwt/+WKFsVvDorhCLl5sA/JaCTP0m1p5w3UXGVbqQTrQtaoHG26oYvvjup6/qD7VCPAiLrKtueN65maWQRPERVeeJNSveRITGlFJNaapR9IYBkp1rdTpUlkcjsXTkU1SwRK2UTWPk/vGgoJGyrksFDMGfeTHD7+AfBbEa0jDaYOLEmbZa2LYPCDKFGZHfRNEWf01rVExeUS2mcfm8S0ZVVKspSSObpByoxgOdKN6gCrEvUX/Q17/QHglfwm5oMXkvRPO1dbSXvuXjUDuHa7nlt5GCW0BScaFVHZNnzAcjS5VQxHEk3+WT//U5eAhmZ0G7BbIxdmLXU1yE6ragqhGOwUsJVPFF8VyZ7L9wB+YxA2lOBu4cJ1++hCLYIJht2quBrHDvociudrs2aTR6IW3wzXlBrnBJBU2t70p41P5RO2JEUuuIIeExXQ4JEFTlVbClbrlhlyJRiuZ44eKcZLuqAk0p6ph279UAMSIUWjvjfUGffBjBlVJzmEFCMSzY51VUx5DjUEGza8t46W8Pfa9UlbA5ER1tG88eDJdv3/iscvZwg4vB2cLttsiixZn5MeWGZ92X X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea11a450-c495-4bea-2e3d-08dd0a2aae00 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:38.1465 (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: NfKpKgUJWFQCPed3XdY5e8tcKe4t9moHJyFyYwe9zbyvpkBnYXluz8frN2evff/hFqFYNuvEVMCVhFIP87NdbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB6504 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: XamY700hvD07q8DIEPMjBoicC4HSlFtjO-fnHPa5oXU_1732193259 X-Mimecast-Originator: labware.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_STOCKGEN, 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 Reviewed-By: Eli Zaretskii Reviewed-By: Eli Zaretskii --- gdb/NEWS | 2 ++ gdb/doc/python.texi | 5 +++++ gdb/python/py-symbol.c | 11 +++++++++++ gdb/testsuite/gdb.python/py-symbol.exp | 1 + 4 files changed, 19 insertions(+) diff --git a/gdb/NEWS b/gdb/NEWS index c9e0439645f..1ea9fcc65b9 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -86,6 +86,8 @@ ** Added gdb.Block.subblocks. Returns a list of blocks contained in that block. + ** Added gdb.Symbol.domain. Contains the domain of the symbol. + * Debugger Adapter Protocol changes ** The "scopes" request will now return a scope holding global diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 290e9fea62f..09e374700a4 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -6203,6 +6203,11 @@ of a symbol. Each address class is a constant defined in the @code{gdb} module and described later in this chapter. @end defvar +@defvar Symbol.domain +The domain of the symbol. Each domain is a constant defined in the +@code{gdb} module and described later in this chapter. +@end defvar + @defvar Symbol.needs_frame This is @code{True} if evaluating this symbol's value requires a frame (@pxref{Frames In Python}) and @code{False} otherwise. Typically, diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 24b53bbe38a..38eead9cb3a 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -153,6 +153,16 @@ sympy_get_addr_class (PyObject *self, void *closure) return gdb_py_object_from_longest (symbol->aclass ()).release (); } +static PyObject * +sympy_get_domain (PyObject *self, void *closure) +{ + struct symbol *symbol = nullptr; + + SYMPY_REQUIRE_VALID (self, symbol); + + return gdb_py_object_from_longest (symbol->domain ()).release (); +} + static PyObject * sympy_is_argument (PyObject *self, void *closure) { @@ -707,6 +717,7 @@ static gdb_PyGetSetDef symbol_object_getset[] = { This is either name or linkage_name, depending on whether the user asked GDB\n\ to display demangled or mangled names.", NULL }, { "addr_class", sympy_get_addr_class, NULL, "Address class of the symbol." }, + { "domain", sympy_get_domain, nullptr, "Domain of the symbol." }, { "is_argument", sympy_is_argument, NULL, "True if the symbol is an argument of a function." }, { "is_constant", sympy_is_constant, NULL, diff --git a/gdb/testsuite/gdb.python/py-symbol.exp b/gdb/testsuite/gdb.python/py-symbol.exp index c174ba4c70e..2a74c97a137 100644 --- a/gdb/testsuite/gdb.python/py-symbol.exp +++ b/gdb/testsuite/gdb.python/py-symbol.exp @@ -135,6 +135,7 @@ gdb_test "python print (func.name)" "func" "test func.name" gdb_test "python print (func.print_name)" "func" "test func.print_name" gdb_test "python print (func.linkage_name)" "func" "test func.linkage_name" gdb_test "python print (func.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "test func.addr_class" +gdb_test "python print (func.domain == gdb.SYMBOL_FUNCTION_DOMAIN)" "True" "test func.domain" # Stop in a second file and ensure we find its local static symbol. gdb_breakpoint "function_in_other_file"