From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id t6AcIA0dVWqIcAYAWB0awg (envelope-from ) for ; Mon, 13 Jul 2026 13:14:53 -0400 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=rwPp+2Wa; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=rwPp+2Wa; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 707C61E09B; Mon, 13 Jul 2026 13:14:53 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.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 autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 C42AE1E033 for ; Mon, 13 Jul 2026 13:14:52 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4389F4BA2E19 for ; Mon, 13 Jul 2026 17:14:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4389F4BA2E19 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=rwPp+2Wa; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=rwPp+2Wa Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c202::7]) by sourceware.org (Postfix) with ESMTPS id 0CB4E4BA2E11 for ; Mon, 13 Jul 2026 17:14:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0CB4E4BA2E11 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 0CB4E4BA2E11 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c202::7 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783962853; cv=pass; b=AOAzHFhLo+gT1IRetkVe8erD/OphiSnaEoy5deLLjojE/weDRLjoyNsug7ZnxtMvrqzi7gX8IJirTI++ty71WyLYHhsiT/c90lcqsj46OLP9kOQU2J6ITFyY7a43muogdQQasbu8tVCymtkxx54/9Lq6Iu1P2QN/AAz85lsiAsc= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783962853; c=relaxed/simple; bh=oeF5QZ4dons+QFycQbZE2P7ekTnB7ufXSOILp1YnmSM=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=cCPJ2Q9wVisWYxj366v6RCRH7X3grnF/RWUOQXJG0tCiUUQ4Pty0c7R1ECmhGlliXuR41lUKx1V8bm4UKqsh+X/E6W3q9D3WJK2nWUim6N+vs90jN2BYJB67lZrKKey/q/zwdIalqnOhWnh1G3cujjqAMVHJHENBUKnPXF+8cI8= ARC-Authentication-Results: i=3; 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=rwPp+2Wa; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=rwPp+2Wa DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0CB4E4BA2E11 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=eTdKnqPe/uDWlwZKybllsscF8NAd1FoTxRAPWybYUejOF3OqOk3FHvQLAvBPZXVBQIQ1+Ir+aN+PQzLMHSUiRJAE2NnXtiMP3QgqKykYXFYA+f9s/a3Z3OAOJby7FucV1Ibq6lHZf6FpJy2WxUUK5B+9w0Pfrcr3oAR+x19EPY4IpwRC+awHY2iDR77zxFjSokf9VEWUtZaMdwab2j5ilp3T0F7tyN9b/RWM/ychZ6MFIhBBjAqDpyWphpWnt1gameLhQhbguVbatCk60pxilHC5QtsD7YCCaf9L+S3fZqVydudFLxuScqVbY8+TOMlGjOnRE20PZXwsObUkAJ64Hw== 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=bXkTlH18VeuOG/G2uqsr9/zV4Jgn1gWmqoX/YtSZ+bA=; b=N53cuHlr/mIhCcZeB0gJHxVCyTCqFGUrVNqx8aBAjSWjw57N6AC1QGjKZUtFLN6Z+1jOhzXIfJHAc84c2XbXThg55qzW/t/1jyxC7bdKKDjkXm72VnLdq6NQaEqvmHA/rvDg67Lz1ChpzixXjk63OP4NTswjAL3rF3baGqBDV1RYMzjYQt1Q+c+fBnPbUMlhUAGmc3giYQCmQwzgfxmFNgAH95GpFcHqDPmPvOAT76+JmY6j6FLZjUZ9ZJOWaaShXZu5P6QWehBd75ylIKNMgEzdvJNKztaPWQxBYUAKpikBCB7O9Ho+1RQfsOb1FZSyRFBcqdZKzJP7nBom4TqWZA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=intel.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=bXkTlH18VeuOG/G2uqsr9/zV4Jgn1gWmqoX/YtSZ+bA=; b=rwPp+2WahZCVoxWUtvjTbq4a1uSdJ5yEUktIAZF6WMmxsMmq+QvhP9v95+wj4iuW0J6wu5k9XFVePh8LmhZeEN1UtN+deIMKbLIpOBj2tbO97gH+rqYlOPeXGAKmnMEm4FNYZolz8GAwxTTbPXyr2hFAefVgy6Uutg1QYfhJKpw= Received: from DUZPR01CA0250.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b5::6) by PAWPR08MB9966.eurprd08.prod.outlook.com (2603:10a6:102:35e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.18; Mon, 13 Jul 2026 17:13:55 +0000 Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com (2603:10a6:10:4b5:cafe::4) by DUZPR01CA0250.outlook.office365.com (2603:10a6:10:4b5::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.202.19 via Frontend Transport; Mon, 13 Jul 2026 17:13:55 +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 DB1PEPF000509F6.mail.protection.outlook.com (10.167.242.152) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.223.9 via Frontend Transport; Mon, 13 Jul 2026 17:13:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FXDk9b4XzxoYH/NX3ps61gHop8pqqTwEmSUJcbU06LEhPufGbS9jSG+dRZYlA8NW1QspnaDKVPVhBv20gPH5TtIfGJsjAsZfOD3xig0k/vnItng+GSftn7gSLpC9v55OYchY7oTn4q/MNYmMnPK+tVkrnT72gvSoWQSTpSbSirD7VI7ysuuY2PH1gG2dUYZJ4ZeifqejtHgOqQTB+0S/RjRNkpzYde3yxdkcmMp4GfpCjIyv5ORaypzVlPMHXH9VLL2F5HlZ9yjjtM3HUZMR9GZwCcerBPwsGcl2yrElRZ149Zbf4w+V71XXcyt3z5GQyzOaDjEK04zKIZV/ZqAGAw== 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=bXkTlH18VeuOG/G2uqsr9/zV4Jgn1gWmqoX/YtSZ+bA=; b=Lc9O9BnwCqe5FhkIgLwJnZh+i9JGftAaW0StKprWzmRWabNW798PgyzK9JzBtw/0r2GMkqmgvM0FrKSJrvIG5qQV72k2XtyNHDzu1RR6ZTsOgeywFK/tIdER16RN25rNS9ectHqqMRdYqWl47919ab6WGujmsYDZjRup29j/EfcglPc+oWbUfDa9g6D5lTNWhelz55wvtM4sIPCDMW7czdeS8uOPXXY9fsvSeHZHbCQkgHSQotzkg1M4jWafdgbXxFh9Mb6gaJhCish3iUzFRWvcnqmQkd6+0FxVI+qMAy+XNITS0RC6xv6gPk8eEzW7Du02gy63OUl3xsUtJghdvg== 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=bXkTlH18VeuOG/G2uqsr9/zV4Jgn1gWmqoX/YtSZ+bA=; b=rwPp+2WahZCVoxWUtvjTbq4a1uSdJ5yEUktIAZF6WMmxsMmq+QvhP9v95+wj4iuW0J6wu5k9XFVePh8LmhZeEN1UtN+deIMKbLIpOBj2tbO97gH+rqYlOPeXGAKmnMEm4FNYZolz8GAwxTTbPXyr2hFAefVgy6Uutg1QYfhJKpw= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB8659.eurprd08.prod.outlook.com (2603:10a6:20b:563::10) by GVUPR08MB11931.eurprd08.prod.outlook.com (2603:10a6:150:348::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.18; Mon, 13 Jul 2026 17:12:50 +0000 Received: from AS8PR08MB8659.eurprd08.prod.outlook.com ([fe80::96bf:2de3:5eab:70ae]) by AS8PR08MB8659.eurprd08.prod.outlook.com ([fe80::96bf:2de3:5eab:70ae%5]) with mapi id 15.21.0202.014; Mon, 13 Jul 2026 17:12:50 +0000 Message-ID: <7cac4b13-581f-4b3c-b42f-65f47848e800@arm.com> Date: Mon, 13 Jul 2026 18:12:49 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 05/10] gdb: introduce helper class file_reader_t To: "Schimpe, Christina" , "gdb-patches@sourceware.org" Cc: Luis Machado , Luis Machado , Andrew Burgess , Yury Khrustalev , Pedro Alves , Tom Tromey , Kevin Buettner , Thiago Jung Bauermann References: <20260707154900.94542-1-matthieu.longo@arm.com> <20260707154900.94542-6-matthieu.longo@arm.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0403.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:189::12) To AS8PR08MB8659.eurprd08.prod.outlook.com (2603:10a6:20b:563::10) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB8659:EE_|GVUPR08MB11931:EE_|DB1PEPF000509F6:EE_|PAWPR08MB9966:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e69ea4e-d792-4af6-b21b-08dee1021e75 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|1800799024|376014|23010399003|22082099003|18002099003|6133799003|4143699003|56012099006|5023799004|11063799006; X-Microsoft-Antispam-Message-Info-Original: pvO0lfbcRvVpC6zB6pnfAYAzQLfxpSx82l/Ac2CHj+gG5R0TQIn/KPJyv+gKOwSQspTQdWvF6UoEDFgtdQWZ3zIm4rJdtJHS6A+6Olm3Ts7YSDfKj2FpsE8FOAsmbFf1BP7imMMNKtHRsYyCeEGiGwwJMyMCEDvGm+hAE3TcrQJBziWqGe+pwLFxUYoZBo7P8+BIlfhFSpZAwNqwoSZAalMgKXTdKGExX38xDlGALYVxXxZVxaaUj10h+Nxbzu4GBL2EuMeX3M7moXOgWBfjfDuyEP66RTaypnofuuRhEkr3W9yKdu0w//WGSkeDmUwikK0CjBeYkI6bVQO1/G+PPoBZc/0OhXfdfinP3GQES4aeav/I22b7PsR78nsgeRRG+ESdgyD16XhitftNCRkNqNrDWIZdgPX5auXM4HK/f0pmCh1V62mEmkWYRUwjq5lyAmxTghCYc3uLzEOrohaB4wOS1k++VydMDB9RS+/+xpTE73+nGMEdfiRvutx8fXdc3kKPpMp3E+aYXwOgOq7V7xEjSC6v1kdz1EhQdOqYvjoc2bDSgzgbmNUIEebQOt+PiEFK/EZDh7c+7wutXnQ/x1MTxoH8Xz63xUAy4o+DG37c85fGrJMQ+MFpyP0W5EEL/JTBCoyT9Qi6iRnbvLdiPEssT48Gv0fSEQXl/jz9oFA= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB8659.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(22082099003)(18002099003)(6133799003)(4143699003)(56012099006)(5023799004)(11063799006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: rAK8hYJebYMwHGrnbbzD2QOeF9QyuAmq5Go7nYt8f71GrvzTtZkicQ48SnHbJzWUSOP0zYc5O6ctgpKmRXJ4Ih82a1TSfdfIoc3ar8YAsyeUlqt6JR8P9LqDfQ4V4fjx15yzhwXioXSUkN1SzkTUJT+C2Ro1uPgNG6+71m8U4STdu+kDiw4xQ3rW4REcTcgqNoIWE+cjXigWl+SHnCLbodqYKSdwsOVMznILkFBSxB6e/X9Qx59+bns3I9q22dF6zAt9/G51vxqH8ayjovJTVVzdJyJtSc+LbO0a+YubS+gUpFWA6LQE/MDVrXaSFaRHQy3ey+3OidESPvbRQe4B6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVUPR08MB11931 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F6.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 7351b175-a754-4f8d-f570-08dee101f7d4 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|1800799024|376014|14060799003|82310400026|36860700016|23010399003|18002099003|22082099003|6133799003|11063799006|56012099006|5023799004|4143699003; X-Microsoft-Antispam-Message-Info: uIUL6JYznzTRcxWqIvj0yjdSIWmwy6px8n6/YmWPWIrp9KD1jHd9vi6/w4B079IYk/KlVTpL+YRRP1/RmoFfbJB1+JnmbW8hVJLSnvopnyLdJi2f224B4usf6l/xye5hIxW1jEN8FX2DmOYZWaeJkdow0dSDMxvfGGWz2b7mLP9izTm7+bgU692lZ/t+ytShAWfE3gKG2aWbGT/r0mMHhQoTPdOD/jrvobL/MThhVvfOthHcLnaQpASlR8hpADul8JHcflxdZMmNwaSPwn7Qfy6o+aNiAxYdt6QC5A1rH6kiio7jh0VlsQbBm9+hRwpKN217RFaDM1Mlo/7DHDqvq8lElqZeCdVFswJQYgEPU19U/WqX191ef22BPlQk9WqQgvnwm9fXJqX1UoHaGyj+v8BdRljWMlbufW333JvqswhHlqqE8/8BtIStDR79gobmLPSLFJsaqvjPwB/f7sNYENXALuhUdQ86WnCAJA0mMn9Wy3ElBvaO7nMCHZBaEcgrFkDe5LNBwHLlV/bsle32yhprZDwdMhunhcHCp7APe2vwp3ZK/HZ+4ZO7J883aM0K1IF8nA8M1WlKIPcyuK8jkKS9fnV/+JrEHD1r/Y+yHF8AduN7Tepzyw0Bq8/bqYrzJFCawkXfXpL07fjPkZF2ijYg3AiSN+8TMkP018wtYMlaEf+osk4mloR04Iol8uF9f0n/sCgYcz9/wJZnhR9BJg== 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)(1800799024)(376014)(14060799003)(82310400026)(36860700016)(23010399003)(18002099003)(22082099003)(6133799003)(11063799006)(56012099006)(5023799004)(4143699003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: s/QE4FOt/W6Vobsc7aTbPdq6S4r9gCGt55OPwZUba3iqaGUBQQ6BTJfMhR2+STg3PF5qT2PrXnhlKnz7cr9sJLCKle1tA72qu8LDOO0JVgMU8tbH3TxvhmlHsY7vdIOehqv/LpHFuxFeOfva0ewYNmEYh4VA0OKGZytc208g850ONgFRN/XgpGltf8PVKhg5lAEE8M2rOOWcNHWDwwTMq83y7/X9Z6gV4D0CajkevdOox7rpyhwtp23pxDbJ5xqiF6mv41C36YvOmnIG+aHfh1U1+FlmAmzi+8boclS9iPQIPv/dh6roOkMUozpNMkt8jtKtr5Hd3BYrUMrovk8Ff+9rE0VBqSh6cyn8BWoFyXtS2d8j8alpLs7xwP6HSzrxmqtJ5ytSfWebTWbregFm+HgGCIU51wwOPvZhp2Ft9+HYWW3yhBxW49IoAEqZDc1l X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2026 17:13:54.9314 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3e69ea4e-d792-4af6-b21b-08dee1021e75 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: DB1PEPF000509F6.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9966 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 13/07/2026 16:50, Schimpe, Christina wrote: >> @@ -2802,9 +2790,6 @@ linux_gdb_signal_to_target (struct gdbarch >> *gdbarch, static bool linux_vsyscall_range_raw (struct gdbarch *gdbarch, >> struct mem_range *range) { >> - char filename[100]; >> - long pid; >> - >> if (target_auxv_search (AT_SYSINFO_EHDR, &range->start) <= 0) >> return false; >> >> @@ -2842,7 +2827,7 @@ linux_vsyscall_range_raw (struct gdbarch >> *gdbarch, struct mem_range *range) >> if (current_inferior ()->fake_pid_p) >> return false; >> >> - pid = current_inferior ()->pid; >> + long pid = current_inferior ()->pid; >> >> /* Note that reading /proc/PID/task/PID/maps (1) is much faster than >> reading /proc/PID/maps (2). The later identifies thread stacks @@ - >> 2852,15 +2837,14 @@ linux_vsyscall_range_raw (struct gdbarch *gdbarch, >> struct mem_range *range) >> a few thousand threads, (1) takes a few milliseconds, while (2) >> takes several seconds. Also note that "smaps", what we read for >> determining core dump mappings, is even slower than "maps". */ >> - xsnprintf (filename, sizeof filename, "/proc/%ld/task/%ld/maps", pid, pid); >> - gdb::unique_xmalloc_ptr data >> - = target_fileio_read_stralloc (NULL, filename); >> - if (data != NULL) >> + file_reader_t task_maps_freader >> + (string_printf ("/proc/%ld/task/%ld/maps", pid, pid)); if >> + (task_maps_freader) >> { >> char *line; >> char *saveptr = NULL; >> >> - for (line = strtok_r (data.get (), "\n", &saveptr); >> + for (line = strtok_r (task_maps_freader.data (), "\n", &saveptr); >> line != NULL; >> line = strtok_r (NULL, "\n", &saveptr)) >> { >> @@ -2879,7 +2863,8 @@ linux_vsyscall_range_raw (struct gdbarch >> *gdbarch, struct mem_range *range) >> } >> } >> else >> - warning (_("unable to open /proc file '%s'"), filename); >> + warning (_("unable to open /proc file '%s'"), >> + task_maps_freader.c_filepath ()); > > IIUC, before your change, if the file was empty, we did not show a warning, since > target_fileio_read_stralloc handles the case like this: > "Empty objects are returned as allocated but empty strings." > > Based on your file_reader_t implementation, I think we get here in case we can > open the file but the file is empty. Not sure if in that case the file can be empty > at all, but it is a behavioural change that should be avoided in my opinion. > There are further similar cases in this patch. An empty file is normally fine, but in most of cases, pretty useless hence the proposed change in behavior. However, I can see a reason when a file is empty and a process still alive. >From man 5 proc_pid_cmdline: > This read-only file holds the complete command line for the process, unless the > process is a zombie. In the latter case, there is nothing in this file: that is, > a read on this file will return 0 characters. > ... > If, after an execve(2), the process modifies its argv strings, those changes will > show up here. > ... > Furthermore, a process may change the memory location that this file refers via > prctl(2) operations such as PR_SET_MM_ARG_START. The last sentence suggests that an empty file is still valid, and can have a different cause than a deceased process. There might be others similar cases. I will change the behavior back to what it was for empty files. > Would it make sense to change the file_reader_t bool operator to return true in case the > file is empty? Maybe we could then additionally introduce a new method bool empty (). > Yes, it would make sense to add a new method empty() and even error (). I will also change the behavior of target_fileio_read_stralloc in case of errors (see comment from Kevin Buettner). bool empty () const { m_data != nullptr && m_size > 0; } bool error () const { m_data == nullptr && m_size == -1; } And bool operator() could be the combination of both: bool operator () const { return !(error () ||empty ()); } >> +/* Helper class for reading a file. */ template class >> +file_reader_t { >> + /* The filepath of the file being read. */ >> + std::string m_filepath; >> + /* Smart pointer to the data. */ >> + gdb::unique_xmalloc_ptr m_data; >> + /* Size of the data. */ >> + size_t m_size; >> + >> +public: >> + file_reader_t (const std::string &filepath) >> + : m_filepath (filepath) >> + , m_size (0) >> + { >> + if constexpr (std::is_same_v) >> + m_data = target_fileio_read_stralloc (nullptr, m_filepath.c_str (), >> + &m_size); >> + else >> + { >> + gdb_byte *buf = nullptr; >> + m_size = target_fileio_read_alloc (nullptr, m_filepath.c_str (), &buf); >> + m_data = gdb::unique_xmalloc_ptr (reinterpret_cast(buf)); >> + } >> + } >> + >> + /* Return true if the file was read successfully. */ operator bool >> + () const noexcept { return m_data != nullptr && m_size > 0; } > > I think we should make this explicit. > However, making the boolean operator explicit would make it very inconvenient. I would prefer to avoid this extra verbose: if (!static_cast(freader)) { // handle the error or empty } Matthieu