From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id V9HMIioTVWq6ZwYAWB0awg (envelope-from ) for ; Mon, 13 Jul 2026 12:32:42 -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=OurAH/cy; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=OurAH/cy; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 7EC101E09B; Mon, 13 Jul 2026 12:32:42 -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 408CE1E033 for ; Mon, 13 Jul 2026 12:32:41 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B3E974BA2E0E for ; Mon, 13 Jul 2026 16:32:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B3E974BA2E0E 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=OurAH/cy; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=OurAH/cy Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012000.outbound.protection.outlook.com [52.101.66.0]) by sourceware.org (Postfix) with ESMTPS id 7791B4BA5435 for ; Mon, 13 Jul 2026 16:32:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7791B4BA5435 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 7791B4BA5435 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.66.0 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783960331; cv=pass; b=uYoBab2QzXaA6Jk+cSY+VXIzheemhZQyaV1kQX2i0Wlbw6JMWnmn9lFN+nFPH3BOeYwJsiTOjyXRDVdXSz50H3N5ikcDAKqo4tAuhGz4tBMVcsoOUGphX17hr5/rxAsVrZQlnTku/7oQlFPcKjUSjx/O0JLwpjEgellO2Jhn93Q= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783960331; c=relaxed/simple; bh=FniuP50h5xskyx9pwXCLzI9293q+47Tn096YwoX9kus=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=oOdOiPBbGrN6uvhSGQ7fpRzriq0B5t7tDHTiE3LS6ZOXZtSxZTsK0jcms/h3ilrLKwHlXZGCGuYkolMZsMO6dt6+jAcSA7h+ngIixdQJRzJUNZNoa7gCBgBRsK4TYUFXm9tTZHLR+ZvvNVZhVKeDXRkN57+er+bCgZvpRC+XLJ8= 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=OurAH/cy; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=OurAH/cy DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7791B4BA5435 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=w7CGRyAjnbIsNoXLXFz00dXuOt5VXfv3+nv0sOJy8teAptPw0l2/5f0N0UbJxgAm5q5NmqJbK3WIuWIbkxyt/WdTRR5yN1yzY8ha9bugz6xZD+48/IEBcCiB8ZhoIVI/7TK3X1hJ3EZkJe6WR6hDWLIP0QtfcNIKco4dw8gvRYG7mol+ndRSu1r7ahK+ZvSnK9c1VeQmFr87rJ8Lki20OWzTR/HlXrWYm/GviwxPbmlSTq7MkLwOdWHC7lW4K9EGP4uuPehRNlNQIQMqY0JflPvI8SgUUlT/wWvBnpLApjlToq7VqVv9KIIxjOBjP73/As80ca/eVuct5L9OeKVjVw== 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=JsF7vb107kwCeBN21cosELQpSQ9OCpKHMr3ZhkmyIA8=; b=G6CFgjcOiWFR1dkK4JFWgFjS4EyxcfFkwDMTwxCgG8yvIfFaYxlfwJYe62yLFdANEob7dgHPLB37VfldT/FDiqyleMpabMYJWjXETp7NK89CUWJt6cCjlA+0rRsPVcfDLUn9OO8ZUw4uQzgG1+VOqt0BrHgeG/d2QeX5Pa/RrcOPU6hvBtO0odhCX6/zFaCr5RcrpjDpmW+F3fjPd2kkzzCjajTadMCKIJSNwbwjezCjykyCrm5Pez6KgMDDnShapQASlUhYyIWAf6lAmlEP/BqW8jMDtkizI6+4NF4YEqDLciohu/Ql23aU9oyxKJWXqXzrl/JPyAnBERmlRSN5fA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=redhat.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=JsF7vb107kwCeBN21cosELQpSQ9OCpKHMr3ZhkmyIA8=; b=OurAH/cyFitQza81ZXxsuJPCV7skQYi5UJZAKWERNaGmTn/dJ4TxN4oeGkngmKupST+wdMbIOa97namToHFv4bJUTHVnUPLG9ENWrDIgwFjP6Q+VNMJwBTTTvCfMiQP9aoQ0oX5mVIKD3atu9cC2wD8uGdFPevHhPLbtyL82UC4= Received: from DUZPR01CA0205.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b6::18) by PAWPR08MB11330.eurprd08.prod.outlook.com (2603:10a6:102:509::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 16:32:06 +0000 Received: from DB3PEPF0000885E.eurprd02.prod.outlook.com (2603:10a6:10:4b6:cafe::a8) by DUZPR01CA0205.outlook.office365.com (2603:10a6:10:4b6::18) 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 16:32:06 +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 DB3PEPF0000885E.mail.protection.outlook.com (10.167.242.9) 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 16:32:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jJ0nm01odlyvvs0jofB4gHfXJ+ib5gYOpFcob3OT76UuB8gMYnrI4LwzhX/e/eOUmCnkCf1ZYhp8dHwOLKz5FXqK5KgsBihMlCjhLUuYOHIJDyoMFZynmZkugSt3L7L7AyfKvUGzoiHKJ8QmAA6W3AN2JOHCqN3YdKkDEOGyB+iZvkzoN2mM9nM88n7lqztQsGhV5IcL7QmOfeeL482yzVctSYyqim/lvzEIMID3WoMlEIgucFmCHD44hKeFYuM+1UG9X6ZT1m3qO9Y0FYa1Qy9NB1MqAhD2Un/EEpa0AC9vFnRcwzJoFKSCB0rhHASdpoBcdGRyotPA6VAhkytibg== 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=JsF7vb107kwCeBN21cosELQpSQ9OCpKHMr3ZhkmyIA8=; b=ed5Yyc7aH53ULiZFVoBWziyncQz/l/T1+j78sHVXYJa2iLYjQvxIK1CGYZsUiYa9561DGKWHs/9EKd9YAS2uvB8ptS2Xk5PXQHxqXWAHFX+yNo9vnTbFg/oJTMbG9NGcuc+5ujw64RmPfbU/YlQfezU5be0iAvSGZAbRbgrENZkN/VAetVNqCaIwLlWtksSu5dxESnVFydLyN+Ff97NF7dZPimO3540uvHhk2sTDglH7G5icq1q6EBQ5mu1RT1zhCKFI3rAORQEvAdyx+R7xihYzLkZpN2yOY5lJJyu/WifxLS/Hcu4dsP5agLwA6lBsSGi1R+RVmdNu3YmFjGp2Zg== 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=JsF7vb107kwCeBN21cosELQpSQ9OCpKHMr3ZhkmyIA8=; b=OurAH/cyFitQza81ZXxsuJPCV7skQYi5UJZAKWERNaGmTn/dJ4TxN4oeGkngmKupST+wdMbIOa97namToHFv4bJUTHVnUPLG9ENWrDIgwFjP6Q+VNMJwBTTTvCfMiQP9aoQ0oX5mVIKD3atu9cC2wD8uGdFPevHhPLbtyL82UC4= 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 AS2PR08MB9152.eurprd08.prod.outlook.com (2603:10a6:20b:578::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.19; Mon, 13 Jul 2026 16:31:03 +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 16:31:03 +0000 Message-ID: <7c84bcda-90ba-4970-b4c6-bf153b4100e3@arm.com> Date: Mon, 13 Jul 2026 17:31:02 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 05/10] gdb: introduce helper class file_reader_t To: Kevin Buettner References: <20260707154900.94542-1-matthieu.longo@arm.com> <20260707154900.94542-6-matthieu.longo@arm.com> <20260710144312.7651f3ad@f44-mesa-1> Content-Language: en-US From: Matthieu Longo Cc: gdb-patches@sourceware.org, Thiago Jung Bauermann In-Reply-To: <20260710144312.7651f3ad@f44-mesa-1> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0046.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::20) To AS8PR08MB8659.eurprd08.prod.outlook.com (2603:10a6:20b:563::10) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB8659:EE_|AS2PR08MB9152:EE_|DB3PEPF0000885E:EE_|PAWPR08MB11330:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eba7e86-06ff-4bfa-78c9-08dee0fc46f7 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|366016|23010399003|376014|22082099003|18002099003|4143699003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info-Original: 4KhEE5/3aRIhlcX3pKcHtTFUSaCJmsukGFqgteOgCc+Hxkgp99rEWAlD9QTnA/SuMVdXKFD2Uhcr6fLaHZtllA153p47CLwFzxaRRiScbvvr6bESKukdZzI9UEmt/6d/86uAmqroYTV3PFcCHbuRso3KAWrQPnb/AMYS7oA3jJmlwH70C7F72kPARlTBN0kfPvO2cXBc2eyxxdQa20J7rgdknAD+vBUqsMbmTLJaye3iZhcZeqoT/d2XU5vM//ZCIRpKkVCR3aJfCCtalIFMfIywpulu2waqDYYIUo90r9Onom2IPq6zSOA410jzcfue7Yf8CpDbfJhqmZQX+AIweHuRpXesuxyvUHvkQQpfZDjFLu3Rd5gj5sgGQR/l6b8b4P6WbQ1U+Fp/PCjj5GIf4PE8NQlXIJEQ+sspV5sNHTLexHZAPy1ee+oNcivSkdv3TFwafgpzYR24aUP+uoNQVBzi+1Rbo0saVOYPVB9sgdMszw46eUPvYYb/Ux61lnEQe7vRN1Fr37HjCPuMhL8Sh58rjN3T1bb3maJlrplLLCVEikDC+xUqMPu+/s36tT/l1fd4nv+Sv2Xi8l8wnbwiNoGE7j5bc4ucKHJzdh4TVjq5GI2EXtAJqG+OwENUjaK//CTKK8w+4AVvKKFOK3f1HAYUyvNfZZJ5ctFLY18Xh5Y= 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)(1800799024)(366016)(23010399003)(376014)(22082099003)(18002099003)(4143699003)(56012099006)(11063799006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: N/npNb7jMw1EIa6ZBoUwM7UjSKrqMFSBTbB5dyhEn3um1xWVEOBlDwteN8I3uhVJgwg+noUhGT/sVWj/A1sxAzzi9XUoZ6LYqqNWXKfECImuCdAgccdsgPih2WwFu2iGpYyaROMi6aEciaYr6TrVgzmbnr7pTB37XVBr7ee+SF9Ws91AdB6tDLMj6iQctbUkafOgNhkvtA3kc//dxNejgzDXY2MsUVKiDgl6U2iLBipcrZ1CIpFVTqmOohqIfeKyfQEss1M2c8ddPHwabiE73jJ2sJV6OlJlfwo9d62VxOcFbRQC/iUh1AF8pH7lmBOtIpKjBjNrLHFwwGJr4uQQhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9152 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB3PEPF0000885E.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e6c3a91a-4b40-4f83-b716-08dee0fc21b7 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|36860700016|82310400026|1800799024|35042699022|376014|14060799003|22082099003|18002099003|4143699003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: BQiwtrxGS9dW0WupJweNta46U3r7cNTtJVoZHscjVB7APY6LoR0wTjCZj0Sg/cjBvI5zLE0qmNmET7FAMh1sklW7Iu7lz3WBNL/De1Kc6M3+U9ubZHQ6Gm6cBFvJtW6nbxTKbWM6DLd7Cj6/ngzVKY6P6uvW4umeffnj3XEx8hmjydd23b2IV8dZLuYW2NyGNg5yOeP4iDtXDXqapjhuriaxosLEbK68NnAq9Bv7HH7LewHgrdSrgezmpvfGj9TlDvLiyW5b27DUejm7PmcrOlQ/+jkTusrAPDtovUJqBmbf2Z//Zlwp/oMz4TeurIdBV3vQYP7YDPCVhwih6JU+7Vkypwkvhta6c4IVVyFmoYxjaSA0J8P4betq31x6pgq+KGM5FxfJSfQIhaJi3mKLANNpS3U6Oq75Za+VAUqTBwChMKz1LWJu2wKm2eXAdRQe3znrfPYnCmW5Wv7+F5U5y167LUcsgADn6XgQNyH7XF3ryVBtbikyMC94T2S6h7DRt4gOjGk+UdzW3rFlfKNGCFOq3Tl7d5y1C/MoPpIyxWvVp8BlWxeMd9MQ8J7/q0VfeQ57fZ0etXZwEvqT8oYxharWlKxlASCda2UY+FlSYzDwgHPMWCqM0O+g6OEOT5fqvwGUU9RhskWlBlRyx4BQ2Xv90+2FnI4mR3Q4VhCNvTMOkMo15TtoqB1RngCdfCls/l4db6MeE9eOlL7RHlQldQ== 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)(23010399003)(36860700016)(82310400026)(1800799024)(35042699022)(376014)(14060799003)(22082099003)(18002099003)(4143699003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ho7l+18iPbz0NG8oJ3ZcSEMlsyGTRZkkNIssJ1DlrRYWVuq7MJtwvVldGoRAdKHYA3TqknOS4Z4VDxsX4p3zyZnd1t82pe3YgeoilifpAJKyAAGSTA49CjxRYmiPhFZl+Jy2YKQMggHpYlkZANhv0UUvwe33YfIBuHN/4zSR20kt4B47y0kYvCMx5k7EFnAxBZ2aPdz+nN4f7UPvkWVX97VQmQPGgLFXuEv/2CmXd1/ghY5r8dSd/NDuLyju6D/Tkoo2+7LG1plh2X+n00/OwX+l3a4+FnqTML615TiTn+jNGSQgn8eGiQiID2Z09n8NX5D14UupqGYD/0M/XP4B0jGOw1Vw3kCrQmbrx3mc66RE685J/KJAukjzEL+2SOA8h/KjX0H6QHaJbn5caN20OCC5ngZk+UcWiVpCk0z+647kAuGLu33wEyr8yiuXG0SH X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2026 16:32:05.9227 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1eba7e86-06ff-4bfa-78c9-08dee0fc46f7 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: DB3PEPF0000885E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB11330 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 10/07/2026 22:43, Kevin Buettner wrote: > On Tue, 7 Jul 2026 16:48:55 +0100 > Matthieu Longo wrote: > >> diff --git a/gdb/target.h b/gdb/target.h >> index 4215553033c..d6fc101f205 100644 >> --- a/gdb/target.h >> +++ b/gdb/target.h >> @@ -2338,6 +2338,71 @@ extern LONGEST target_fileio_read_alloc (struct inferior *inf, >> extern gdb::unique_xmalloc_ptr target_fileio_read_stralloc >> (struct inferior *inf, const char *filename, size_t *len = nullptr); >> >> +/* 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_size is a size_t, which is unsigned. But target_fileio_read_alloc > returns a signed value and if it fails, the return value will be -1, > right? I think you need to handle this case somehow... > > Kevin > Given that you raise this question, it makes me question whether the semantic of target_fileio_read_stralloc is not misleading. target_fileio_read_stralloc always returns a positive value. A size of 0 is set when an issue occurs. An error can be detected when checking the returned value for nullptr. Setting the size to -1 is superfluous. Hence this method in file_reader_t to check whether the object is valid. /* Return true if the file was read successfully. */ operator bool () const noexcept { return m_data != nullptr && m_size > 0; } Note that an empty file would means that m_data is not null, but its size would be 0. I decided to treat both of them in the same way because we cannot do much with an empty procfs file. Matthieu