From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id cM8SMtCpKWkCfj4AWB0awg (envelope-from ) for ; Fri, 28 Nov 2025 08:55:28 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=N8Wglal2; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id B5B601E0B6; Fri, 28 Nov 2025 08:55:28 -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 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 2ACBD1E08D for ; Fri, 28 Nov 2025 08:55:28 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CEE133858C41 for ; Fri, 28 Nov 2025 13:55:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CEE133858C41 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=N8Wglal2 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 025293858D1E for ; Fri, 28 Nov 2025 13:50:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 025293858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine 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 025293858D1E 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=1764337811; cv=none; b=blfCBrsjF8TUse0Q/EcINgXM2OQVWo4DDwawYE0R/nY8nVxzsl2LwN//3b4dhxVacnTWzle8AekwilMZ9ueu098mxYYRwMF+3v9gJfJ6txSF5rNUj68E7LxUnMGuFHyT7EHVZ8snv3R6mE9Iq3I4kz+VxxZ1g9wFt9epoY6tf+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764337811; c=relaxed/simple; bh=B2f+I6AM9xNP2QcPw8W/PmfQNZvjIPFry5bxluG5mTY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=lFbeO5yLrrq+BsBQPv0ZeZkIJmNbRVcahXAa/im1yQSKBy/g+PBU7ngJL7Nxn8UVK/jCkNmAmcs6yU3EtVpciottQgbbsIjxc5A7Is8qIrh64Kn0hZ1g2hAnChr9W9hHY1lbGz3akYWB0QFZT7HJVgNq8pW2E8B8kuHpYILaf8c= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 025293858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=labware.com; s=mimecast20220511; t=1764337810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=x1mP3seKXwplyWAG3hzwC5iWQD+lf09HngUyzuT59Gc=; b=N8Wglal2DThgpihUZ7TzjmHoynFfCFKd+t1ult++JEHex/K7O7BCQoN6Shvsc6GcQmt/bC 7s9M0TDQRLcvG0eXx1oDsU34BK4pradC/kUzhVuARg+kgOTqeu3zv2/8OqEA4RkUvKfaZQ Tj36iluBy652E+ua6a4kY76M5GEqxGQ= Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11021117.outbound.protection.outlook.com [52.101.62.117]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-651-CHwCObUGPCu6JVSRoi3VCQ-1; Fri, 28 Nov 2025 08:50:09 -0500 X-MC-Unique: CHwCObUGPCu6JVSRoi3VCQ-1 X-Mimecast-MFC-AGG-ID: CHwCObUGPCu6JVSRoi3VCQ_1764337809 Received: from SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) by SA3PR17MB7107.namprd17.prod.outlook.com (2603:10b6:806:381::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.6; Fri, 28 Nov 2025 13:50:08 +0000 Received: from SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e]) by SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e%3]) with mapi id 15.20.9388.003; Fri, 28 Nov 2025 13:50:08 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany , Simon Marchi Subject: [pushed] gdb: change blockvector::contains() to handle blockvectors with "holes" Date: Fri, 28 Nov 2025 13:49:48 +0000 Message-ID: <20251128134950.1763596-2-jan.vrany@labware.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251128134950.1763596-1-jan.vrany@labware.com> References: <20251128134950.1763596-1-jan.vrany@labware.com> X-ClientProxiedBy: LO2P265CA0113.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::29) To SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR17MB5365:EE_|SA3PR17MB7107:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ebd3655-efce-497f-b10e-08de2e850ac1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pfT+gGH5Fee3yZv9rNl6R3kMfZ+OSrlCGIBfRZHNZMAhme1cX+aN73rMHB+7?= =?us-ascii?Q?Smyc3fWKS4m97thtqxOiQs38I9mQZA5BM2Gfbrx5biJ1QdRS56FwuFZn3jKY?= =?us-ascii?Q?TQ4zZRWteOKuSuKhWXR7j4vgfLXEToXIZ7y+FEb2DFU9xWO4SyzRtI9J4itb?= =?us-ascii?Q?pmnFs66ly2+hGoXcy9deG+7gsw88MRTXCyCUTAo/i8mT+aCM9ddLSuFqWgcD?= =?us-ascii?Q?MdTPO8RVNddBkhcUjeNen+eFiLz+pKP75iSXqkTCjipQh4knGPA2lQbOx9/B?= =?us-ascii?Q?6MBKfHxsK/ZOWpFPurokr+uUVaqW1XNtEtyOR3il7rlBrj2KII/L2DsoMFYZ?= =?us-ascii?Q?8UPz/HmqBCupW6mHBOY6/aPPd3Z3pJ50lSko2akihHOkIgbQ2ShjD9wfn3HG?= =?us-ascii?Q?GPFNZfib4NafYdtlM9W+zQtwnq3sYpTByiqu66Qhzd1KH58GBM5F4p9xtUl2?= =?us-ascii?Q?FPl6zDrjoP9pAWuWQKQUE+Mq4eiQioyyp9kaKOEkGAhwdqY+6npMuNSfzFb/?= =?us-ascii?Q?9r9MbytHnUVlTpTUJ1k4gZpzT1e/U1M2BtgJPVb+WJuq6yua/Q0J61BQNsDW?= =?us-ascii?Q?cErLtcypP/88ODyQjFKy0IH/5DRFIlXfovWnQ4BUe5XYQluF/QxLpt6mZBuq?= =?us-ascii?Q?llXRdMFZMEyLkSIcH0EMu7f9S7lJfuoPEdK2rPsgsiVe+O9oobpvT2GtL3vy?= =?us-ascii?Q?UOXBduBuOXj4x9jrp8WtaJvgVCSgXbcTdv+fF9oaiPyaZaUZTUcTRAG8tMjs?= =?us-ascii?Q?epjACGlS/h2JlYxQmaO3gf/hLyyCdqB9eqyFrLT+QX9a43I/iOWHy4JiAaUs?= =?us-ascii?Q?8UvgWGSSsPrGt7tmO/6/eyEBbKMs+onStU8CGJnJLqGYZtC+BGEe8p+L5QED?= =?us-ascii?Q?TWoDFn1jPCQoe8j3hvMp9uCBr2Tbi5Y3EFjI+sZIz+V7htr1zLnfgaz7E/nu?= =?us-ascii?Q?seUlYRefoQSdTtFkGiJg5KOI77EhnD7s6efSV5jqlfh/b5xKIuahBP5Rhwey?= =?us-ascii?Q?ecHl9Vsud1HngezhN55Nk4edHyLXgiRbvwU/Z78b27H3vvwKdrNxAsNK7uB/?= =?us-ascii?Q?fWiaDU5EFaXl4IhvUaWezrNFlLfXqgMFnC/xD9Y9m3GD31utJicOuc+CORk/?= =?us-ascii?Q?vrVGVVm+S4/ZGk3lFbX3XgfTu8q1oPO5AoiOXcdC6d11P67luNaVlYtirjbD?= =?us-ascii?Q?rsrVG1ZTXLRZ850cij1evjQmw8CFZkbUHGxIgJeO4GbxAs0oa71ZpUGEUBqA?= =?us-ascii?Q?GvnTrtHOWeUg3bntFEg4emuJtbPrnpWC31BS11ZpsK8hRrrXp5POFkgQPEVL?= =?us-ascii?Q?dEynE6/B8RX9FFoz/NlLMMfBtbUhQ65f2fs0JfzCO1URg3/jf0BDksQEVALu?= =?us-ascii?Q?9+kMnztua6mvyeZlX57OVn7GHjl5YP4L2rjDLwTomwUT4V+h7rpcB0zQlJOI?= =?us-ascii?Q?BLHL+PGgPtYfxjO/D3cB1021vhKfqf4B?= 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)(1800799024)(366016); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4OoGHwOi/yy0RWfwrKxKrztVYRVa4K1oSdMzryRNxGcGGbuVDNIERvExGXwj?= =?us-ascii?Q?++BuPKq0BTz1ieZxpWBW+flC58auahZpJRqzrwFfrnS9PpAYtTOiNUefc3jD?= =?us-ascii?Q?SYYoUdsCoSU+uPo7Y999c5VB9NEogYHXoqb1z9KDRflnL+MltxaSlfZSu5iY?= =?us-ascii?Q?STqs+rNayIrOJ6Dl3z4sdgd+X7UZHSZDdMX3VGTvx65V3vUJlcX9xS5aeN3q?= =?us-ascii?Q?MRmxIUx5T58gXIU5KcOz7z0kS6EkehNjmer2sqxrH6gJVSQVAjfEU+mSLuST?= =?us-ascii?Q?YNVq8G/tF5CoXeO8eIz6uy/qmxnLenfbQw0eLaPud5U9ZNBynDq0GImM6smR?= =?us-ascii?Q?HEtUdZ6UZGfV2XVZFvBUJ0MBkOMTIypZjFp8NlKUFBnyf9rasx6iDQRyykQw?= =?us-ascii?Q?dHXyjQjtvhGhh0sHa6uPMOPjQbjnB3PjG3gjMVONT5+fsA7XNkGWhKThK1Zn?= =?us-ascii?Q?0DULA1aNhN9YQkhSbcGfWm1LarZCwZQSxVtg22vI88JZsl63HX/0e7tOqIve?= =?us-ascii?Q?Zsx5bKKUf1Kh2IdeNTCN/WjKuZk0zXHpxzusrcu2q885D9pBeAWAPQmKMD80?= =?us-ascii?Q?WX9ajD4NHVtlD2sbjVY24q3M3SXj8G9n5qF26rhmwCH8+veGNfhb461bJV+v?= =?us-ascii?Q?Fp2tJtBQGypAzjNktSapDBdAGIgI0sazsUMxnx0WyyWGM3++zJkoO+tIXDLh?= =?us-ascii?Q?JXk7E4dA6/PsuRtTXxJkV2PNZ6KXAGBpD7JtTmtfFms7c04Nhm+f86lsT5tf?= =?us-ascii?Q?1yixVSeHJNFYKkB2NwzJCZZCDSVwtks+l9HCNoG35GSW3LlAKevqQu9IA70Y?= =?us-ascii?Q?xHxE9VFDCEI89zoG1/TYCvL5W7bSCpZBphKxzqWzDWgCMYP4z29jRp8S/VsU?= =?us-ascii?Q?VzaiETidRsDJrr1v8brORa7uRJD9LnMqOjm3bEnHD+doPAHaYrBxqtfVzp9d?= =?us-ascii?Q?GY9AcE7iwGSMhHULSmXxd1OETpgvYSqKaeOab6AMlIK0mCBil6SncQ7IFO3P?= =?us-ascii?Q?RjOC4gk6TD7wde/ePV599jBPOT1S/JhEFs9QOKvVjExb8ZdEp4cBu3hHAdsf?= =?us-ascii?Q?+N/SRvFzXwv+qIdxOI7BWpHpOrKou5SR3jbxbaoQGkZiSKBxG0jr+XyY0Nvp?= =?us-ascii?Q?e0dzOKZL5e+gPjFwWdr0RjJjlZuht5ZDVtys7N2399O/MRcyHkcg1y3NgpKr?= =?us-ascii?Q?fis66h586JoTSBP1HQBnh/h0yYi3Z1E4SZuZmlgS1RM1CLlfpTfzegKKeg8I?= =?us-ascii?Q?Fe2KqCVXEL0OYgASZn66bl1F55Kq6cksNWWXQk7dTbURcbWujpH2KRA+t4q0?= =?us-ascii?Q?7YbP1dZvZuQvlpm3umwdRSYNrA+u8cXwpY5ym9Qx1s61jsxObt11VfIPFXkh?= =?us-ascii?Q?52WOIRILCHh143QkqayNkXeOdKkl6HJ46RIVeAxiy0YScpgALF28LMO5Fgt5?= =?us-ascii?Q?fx7FVssVIEjEyBx9aSIILLNjxwpYecfkmCsRGjUP5vjpBqLKHb3UQXe1Ow7+?= =?us-ascii?Q?Qa7IbMST91PCb6giPklmNigBB7rKLXQnvU6YZpGDvywXpnI+RTfGhr6q+Xg5?= =?us-ascii?Q?dmKJThe3cjxp3g5DatlcQM7ymPV7JkSH74U4dXIW?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ebd3655-efce-497f-b10e-08de2e850ac1 X-MS-Exchange-CrossTenant-AuthSource: SA1PR17MB5365.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 13:50:08.0252 (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: yasb16vsav47Czx8GD5jHlPvfqNfQXl4ncPXcJDrKqmvRdUXRZMpO3uYd44Q+USRB5pdrS63Vvol9GY0NEZKeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR17MB7107 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: K2yXEe39UmVAeJhpmk5LJyFHCSf7WXm7tleXZ2iP7NY_1764337809 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 This commit slightly changes the logic in blockvector::contains() to handle a case where the blockvector contains blocks with disjoint regions (see the comment in blockvector::contains for details). This change may potentially change GDB's behavior. It is not clear to me if there was a reason for blockvector_contains_pc() behaving differently depending whether or not given blockvector contain a map. With this change, blockvector::contains() return the same value regardless. The reason for it is to make it work as expected also for "dynamic" code created by JIT reader (and perhaps by Python in the future). Note that for CUs created from DWARF, blockvectors have always a map set so this change in behavior should not affect them. Running testsuite on Linux x86_64 shown no regressions. Finally, I was considering of making this change up in lookup method but in the end decided to be bit more conservative because comment in original find_block_in_blockvector() suggested that returning a static block from there is an expected situation. Approved-By: Simon Marchi --- gdb/block.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/gdb/block.c b/gdb/block.c index e21580bcf63..3d2c51cc554 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -864,7 +864,34 @@ blockvector::lookup (CORE_ADDR addr) const bool blockvector::contains (CORE_ADDR addr) const { - return lookup (addr) !=3D nullptr; + auto b =3D lookup (addr); + if (b =3D=3D nullptr) + return false; + + /* Handle the case that the blockvector has no address map but still has + "holes". For example, consider the following blockvector: + +=09B0 0x1000 - 0x4000 (global block) +=09B1 0x1000 - 0x4000 (static block) +=09 B3 0x1000 - 0x2000 +=09=09=09=09(hole) +=09 B4 0x3000 - 0x4000 + + In this case, the above blockvector does not contain address 0x2500 b= ut + lookup (0x2500) would return the blockvector's static block. + + So here we check if the returned block is a static block and if yes, = still + return false. However, if the blockvector contains no blocks other t= han + the global and static blocks and ADDR falls into the static block, + conservatively return true. + + See comment in find_compunit_symtab_for_pc_sect, symtab.c. + + Also, note that if the blockvector in the above example would contain + an address map, then lookup (0x2500) would return NULL instead of + the static block. + */ + return b !=3D static_block () || num_blocks () =3D=3D 2; } =20 /* See block.h. */ --=20 2.51.0