From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00154904.pphosted.com (mx0b-00154904.pphosted.com [148.163.137.20]) by sourceware.org (Postfix) with ESMTPS id 231AF3858D33 for ; Wed, 21 Feb 2024 20:55:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 231AF3858D33 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=dell.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dell.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 231AF3858D33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=148.163.137.20 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708548926; cv=pass; b=leECz7fjFFsEh0cI9IWvKFPC7Rz15Ut7JjDkkjn3BH3kXbihsMay/Aw1+ekyyvEbT/s/5ybn0uZLcY5h17+czL8jMFE0N49STUicrWaRh/UtyHFRrXbnEXv5lsjEG8ubDPR2CUnpitsr0IluwLlfvsUpSsXwmcpqAGInX2J19DY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708548926; c=relaxed/simple; bh=cgf11PMkFCEU2hgI+ZUhqRQNwBBRI6q22YFF+Fsi3do=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=TI7zsRqTHZ5FJCT/ds0MiIfubJJNhhEnRPYtZjouq3DWaqL0cvT5ZQj1X8C4vRVlvAdB5duB22X99fipDTijy2d3KDKgN1d5juMufTiJthGv+veIOUuvlT+OD3cCvNC80zlr1Opig7+4B1uPefnNBUi100/ji1UJJvPD/qwyY14= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0170398.ppops.net [127.0.0.1]) by mx0b-00154904.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41LH2jTj028605; Wed, 21 Feb 2024 15:55:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dell.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=smtpout1; bh=asxwScrRAT6TjGDXJcIS6XbSI4gPRoliZBaaDBj3GVg=; b=Xmq8RqO/CYg2KmFGq5pMwu19lIWbqFEmUom8Wh7h69Aka0AxweXUpanR4lmHvLmjUudL Mgqt1K9x82pgHwk+L1o23ZCxKMnNO6U94NyKqExS/Q1zyJnz6Hwfisrs7OAZYgQFETFv 5Mp1XOLfGKiEBwEYtX+OLFJDZwA2XZ8cidhshCUd7SY7cCvBkY1NeLM5koN+LkpBSxoc LSuy12L+7aBoOQhABeu4tLR/AA8TitAZbpSEZXj+ThE2uuqSDrNR0ID0uxPbHSlEu0B0 OlMS2msU8AD8vPpYLzGAmwvXiv0azshG5teobPAsnyXxvig7/P5MjoKTlHaITGn+7LFp oA== Received: from mx0a-00154901.pphosted.com (mx0a-00154901.pphosted.com [67.231.149.39]) by mx0b-00154904.pphosted.com (PPS) with ESMTPS id 3wd55kwkyw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 21 Feb 2024 15:55:21 -0500 Received: from pps.filterd (m0134746.ppops.net [127.0.0.1]) by mx0a-00154901.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41LIvjEm015604; Wed, 21 Feb 2024 15:55:18 -0500 Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by mx0a-00154901.pphosted.com (PPS) with ESMTPS id 3wdn2fbh1f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Feb 2024 15:55:16 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VpLPJvgIWFLL+na4IbSBYMbbuEasJzb8h0WbTQIPgQnAneiLkklFimnRGW9CapGfNc+hsbpbViV24Q0kcKQIK69hEjQsVkIupFGrbP3nSmA3FFFvG7A/MRJO9VTRfRzIeOxDou0FVrOmbNBATjNCi6pM/jOsTIJKacLqvJBHURp5IWt1o6eMbnM/WVTm8OIBY+jY5SbrKrKjTF0G0AcVCy5gHIXwKoxv1+VQQzHIHsGoJ1fs1S8LFXu/pIvbjMtjM9Y4Xl82YxOa94idQOajWmYj09L4GqjIT4Sbk0a1PGj/OK14g82Z2tgPzX0/SG9puPcUK/djRI4LVv+Kjvnslw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=asxwScrRAT6TjGDXJcIS6XbSI4gPRoliZBaaDBj3GVg=; b=P16aFKI2+uSqxDxghODZTOJB+2EZoSHPPRbWeY5tj6TLTRUPdHOlrCwgw0lPoy+9a2XiB1dSnActcasIsiRuJ7DpLSjrshTsJnYABUnMtXn+OuOxlyGwnp5AzHp8rCHoFXoHwXqxeTxM6sI5F6UlbqvRNMLCATSV8H2+dUT7u9JcQIoi0WFyUqZh7Zirl2g6ZWZG+R/IP/M1gQR/pOqGrbD4o+X8DyAKZ6DCp6JQCctkDJyDqdjNA2qJiX5peCso6vgyKBpXgX0ASdc3GFE6Xa1ieDL7fgwdQWC7rN2XhU+7K/DiLzbCQFvn59SkNbos80hpTsbhBJG4ZyUTuL/vhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dell.com; dmarc=pass action=none header.from=dell.com; dkim=pass header.d=dell.com; arc=none Received: from DM5PR1901MB2150.namprd19.prod.outlook.com (2603:10b6:4:a8::15) by SJ2PR19MB7560.namprd19.prod.outlook.com (2603:10b6:a03:4c7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Wed, 21 Feb 2024 20:55:12 +0000 Received: from DM5PR1901MB2150.namprd19.prod.outlook.com ([fe80::a40c:770b:af50:d2c8]) by DM5PR1901MB2150.namprd19.prod.outlook.com ([fe80::a40c:770b:af50:d2c8%4]) with mapi id 15.20.7292.036; Wed, 21 Feb 2024 20:55:11 +0000 From: "Terekhov, Mikhail" To: Pedro Alves , "gdb-patches@sourceware.org" Subject: RE: [PATCH] gdb/linux-nat.c: Add "Accessing inferior memory" section Thread-Topic: [PATCH] gdb/linux-nat.c: Add "Accessing inferior memory" section Thread-Index: AQHaZQSaxYk5p6PfV0aKF1klBSaVh7EVRiOA Date: Wed, 21 Feb 2024 20:55:11 +0000 Message-ID: References: <20240221202840.772802-1-pedro@palves.net> In-Reply-To: <20240221202840.772802-1-pedro@palves.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_ActionId=901d178b-f39d-4bde-8ca7-49da6de7edcd;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_ContentBits=0;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_Enabled=true;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_Method=Standard;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_Name=No Protection (Label Only) - Internal Use;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_SetDate=2024-02-21T20:53:57Z;MSIP_Label_73dd1fcc-24d7-4f55-9dc2-c1518f171327_SiteId=945c199a-83a2-4e80-9f8c-5a91be5752dd; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM5PR1901MB2150:EE_|SJ2PR19MB7560:EE_ x-ms-office365-filtering-correlation-id: dcf176e8-8dbc-4997-2e11-08dc331f6552 x-exotenant: 2khUwGVqB6N9v58KS13ncyUmMJd8q4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B4AlwjgQ/0HTiv2r6RH58nnJ61We5nSsomjk/Xb8n0ZYrtlyx8sl2vgAT9dEaGFm54iaom/Fgnp9Icvk3iWv6hyuM1xRIMBQbnexoU2s6qx2ShYEX8htoK1nXTIq3o6VNJYgNL3Tz/njha5J2hl9YFrjAvveegc3Dlb2XRXSwHEDG/mTQ28n2Q6+MqsesQ6sXRv527dq6CW01FZti4bfChgO0mktR/IQILklhZqscEhP5ejgd13/MuBBGEoYDi8+lE0wM01gV1+kgyqzVw3ubjkkv23SEg/DuGykEmZltmsw/Tf91TT0XV5KVtNot4a7XpD/DGWKxueVuhZh+LlVZyHxST+kKcrDwHdAcq0Bq7rDZYclRJaERj/pRqHBFmapEBB0SyY3/Wl4gwHBdi2+35bgV8a2YSHs0OucR1dZ0IdCBOZuFcILd1YguiYSZABRPPitBWo5wBQem3QL0GPgm8Y7DEsjqqEIs56Nqkf/eLoQC2BbN19j5J0ZHepxIwWyRCARsqa8BEIcMrSFJVBPG9JfcDPOrAIunNsjl2VZOsxgI+ou896U0D/7xqyjpQybFqUTbXB+JK3yTTNUA3wAMRKcsOOwZXOfSn2chPUohgk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR1901MB2150.namprd19.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(230273577357003)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-7?B?UXdyVVJyU1BwanFEZER1bTdtYmtYWjdNSUhSZEI0WVJRY0tOZ0xpTFEvRWN2?= =?utf-7?B?bHJ3dTlMRzM2ZTJrL1pwbXUzc2FpNlF2cGQ5bHRNY2djYk1zTnZYYjdyQk5p?= =?utf-7?B?alJPaUNnVzV6cWpoQzB5VHBtOXFyOVpENXpZNkRJOUtZUHNqeGpaL0VJRncy?= =?utf-7?B?Mmt0THVORUVsZGJIa1FlU3I4eDZVQ1MvWDlxY3RNbG9VbGVGcFZhTXUyNURa?= =?utf-7?B?bTNOeVlxdXN4MDllR0N1a3BlVnFRa01WNC9LKy0rLTU1RUdVSnBPWmZQaUtM?= =?utf-7?B?ZTA0MEVjR3hBSjVETng5c2kzSFV4bVJLNHFTUXNOTU1oUkQyZHppOTcyeEhs?= =?utf-7?B?ZU1kUkVJL29ybVAvWTkyMUt6QlVtczlmN2lkU0hRZ2NwbWEyZHRzVnZ1eHoz?= =?utf-7?B?RTJmVkZyZGRJdGpDR3RxMXFFZWMvZ2VwNnNnL0dmeldzRElCbUdsbVUyZ3J1?= =?utf-7?B?RlFKdUtjY280VS9SWFc0SzBkc2Q5c2pWeHdmV0Ryb2ZzUTBDYTFLbmRhZTh6?= =?utf-7?B?SnVQTm9QZS9uVS9XV1BSblZsZzAzM205V0xHTnRFdWd0bUM0MHFwWXhUcFhW?= =?utf-7?B?WkpiV3Fxb2N3RnZYOHpzaHJ5bDJlRlNSUXRHZzFTKy1HQk9TTzg3Z3BGYURu?= =?utf-7?B?eVA3amhvSDhrdDFXUW9aL2VwNEVhSEZMZHVvRmJnTk0rLU5RRU1rbXRLRzdU?= =?utf-7?B?OFhZUTJNZystd1B2V0w2ZWFWWm5UN0NZZ2c2d0JvY3BCZE9zUklPSmk0cjR3?= =?utf-7?B?Q1orLU5JUlJ2V0RTUUVWRS9vUnVINSstaEI0QVNvQnhGelhJYnVMZEkyb04w?= =?utf-7?B?RjkzSlNQOXZLV3ZYck91dXducm5oUFYzMjZrWXI5aVZ6anBJa0g3RVQxZkRy?= =?utf-7?B?R2gwN0kyM3UvZ2oySlhzQjJJS21yM3RoMnF0UkwyZjg0OWNva3lMVmlVSVFp?= =?utf-7?B?TjhncmUrLXRRdXBRRGhLQkpQcERBRWV2Qm9kdzErLXRmUXg3RTdxR3lXQlJO?= =?utf-7?B?RFJDTU1sVDBwYU5jbC9GWXAzRDUvQlpOaDZCbHZ1NWh6ejJXdzArLTlFNFUy?= =?utf-7?B?RFAxSWFZWFkwM21RSU56cWVPeG5nWFhHKy1aandRamdnU3dXWGtPQTVFRWhW?= =?utf-7?B?L0FlZ3lUbDVZWHNRdUxhSE5ZbjdLczJvQystMkRmNkdhdXZYVVZWZDA5QTVp?= =?utf-7?B?QjlpT0VlcFpXblNYYjE1TmFDKy1lV29xOS9ySEp4dG5hSk8yc2ZBbkg2UDZo?= =?utf-7?B?YVUyRndxS0k2V1NoYUo4cmFkNUdkSG5waUxGYkRWSDhFczV3dG5wZkRkanRE?= =?utf-7?B?cGxqYWFNdWhNcVpaYkR5UWpWeWEyVExNRU9MMmJRTTRBa0dxeE1aSnhtMHhK?= =?utf-7?B?dXVWZ1d3TkVHMlN5OEhnNmdFNSstang0V1V0aFE0QistbDJaU3lmSldUbjJY?= =?utf-7?B?dGxmNHZGNjhuUEZSWmd6bUFzT3EwUGhDblZJQVhlNGpTZy9NN1ZNZjVnS3pk?= =?utf-7?B?Z2d5Q3hvRWFzWE1WQXhRc0xnREt5RjBDazJBaUhsVGVnbllkaGdpaHJZb0FT?= =?utf-7?B?dkk1djJZNTE0eTJKdkZybjBSMWdyZHdheGR1dlpXdmU4M2JNazAvaUMwTGNP?= =?utf-7?B?WmhIWmZxMXloM3NXa1ZSdjlWQ0p6bkVkRk80ckhIbSstNUdlckhVMUxqbVh0?= =?utf-7?B?aHpTZjhUYk5HZWZNOTBUSVZwSWkzM0hTTmdGYm0wR0J2ZjNBS01QcldJcEhK?= =?utf-7?B?SGhHbEQwWGpDbFJwRWx4cXlZQzNJQkszUkJmM2VMN1VCeE5EUlJoNDgrLVY=?= =?utf-7?B?Ky1jei9mcmx0Ukd3eEZTeUF0NkVTdkxtQ3B2akpsVFdjbzgvNnRRbVNnT0o2?= =?utf-7?B?RmNuZFQ5UGZ3MURUeWpkWUI5NkRMdVF0Y3JzNGttZGg5SVB4SXZrbHZUcUVk?= =?utf-7?B?Vy9rUkFkYWpvL0ZqbSstRk9kMEVKQi8yS3VWU1BnOFB1SEY4c25JSTNoZ1h6?= =?utf-7?B?SC9FdW5IYmhHcXZqZ1d2bXgyNEZadGw3M010WHZvOGF0MXZnbUh1YnFtRTBq?= =?utf-7?B?bDJPbVE1Ly9kQVNNeDhLSystc3FRcVFTSXRSRnQxOWJLZU9lZWRVeHRVWjFv?= =?utf-7?B?R2NsL0RwUDVXZE1BNm9TcGhJSDZSOTlBaC96Ti9Sb2hoN2o1Uy83RXBFWEdq?= =?utf-7?B?Ug==?= Content-Type: text/plain; charset="utf-7" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Dell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR1901MB2150.namprd19.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dcf176e8-8dbc-4997-2e11-08dc331f6552 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2024 20:55:11.6058 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 945c199a-83a2-4e80-9f8c-5a91be5752dd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bZ/xtNz0Jcb6Y7JgO1xNwNJbX5BdMkc57PrQrqeYmExauLGyJTY8ZfYippSkLfFwO+PKQPzdexuoNw+AbdRYVy8v17vQXN3ilU8n+FujfGU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR19MB7560 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-21_08,2024-02-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 mlxlogscore=901 spamscore=0 bulkscore=0 mlxscore=0 malwarescore=0 impostorscore=0 suspectscore=0 adultscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402210163 X-Proofpoint-ORIG-GUID: TbwIiq7k8Gt-IEacAU10GtnhBLFjW2L9 X-Proofpoint-GUID: TbwIiq7k8Gt-IEacAU10GtnhBLFjW2L9 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 priorityscore=1501 phishscore=0 malwarescore=0 mlxscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=948 bulkscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402210163 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Internal Use - Confidential +AD4- -----Original Message----- +AD4- From: Pedro Alves +ADw-pedro+AEA-palves.net+AD4- +AD4- Sent: Wednesday, February 21, 2024 3:29 PM +AD4- To: gdb-patches+AEA-sourceware.org +AD4- Subject: +AFs-PATCH+AF0- gdb/linux-nat.c: Add +ACI-Accessing inferior= memory+ACI- section +AD4- +AD4- +AD4- +AFs-EXTERNAL EMAIL+AF0- +AD4- +AD4- This commit adds a new +ACI-Accessing inferior memory+ACI- comment se= ction to +AD4- gdb/linux-nat.c that explains why we prefer /proc/pid/mem over +AD4- alternatives. +AD4- +AD4- Bug: +AD4- https://urldefense.com/v3/+AF8AXw-https://sourceware.org/bugzilla/sho= w+AF8-bug.cg +AD4- i?id+AD0-30453+AF8AXwA7ACEAIQ-LpKI+ACE-kgnQq3OesZh1u3bZMiMlYFRFw8wKO2= JalIjNt8elbNGzCR +AD4- ybBEhn7fUGW68WD9BZqTSpxUNpMS92G2nfHQ+ACQ- +AFs-sourceware+AFs-.+AF0-o= rg+AF0- +AD4- +AD4- Change-Id: I575b21ed697a85f3ff4c0ec58c04812db5005b76 +AD4- --- +AD4- gdb/linux-nat.c +AHw- 58 +AD4- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+= -+-+-+-+-+-+-+-+-+-+-+-+-+-- +AD4- 1 file changed, 57 insertions(+-), 1 deletion(-) +AD4- +AD4- diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index e91c57ba239..219= 28c681ef +AD4- 100644 +AD4- --- a/gdb/linux-nat.c +AD4- +-+-+- b/gdb/linux-nat.c +AD4- +AEAAQA- -180,7 +-180,63 +AEAAQA- execing thread, the leader will be = zombie, and the +AD4- execing thread will be in +AGA-D (disc sleep)' state. As soon as al= l other threads +AD4- are reaped, the execing thread changes its tid to the tgid, and the = previous +AD4- (zombie) leader vanishes, giving place to the +ACI-new+ACI- +AD4- -leader. +ACo-/ +AD4- +-leader. +AD4- +- +AD4- +-Accessing inferior memory +AD4- +-+AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD= 0- +AD4- +- +AD4- +-To access inferior memory, we strongly prefer /proc/PID/mem. We +AD4- +-fallback to ptrace if and only if /proc/PID/mem is not writable, as= a +AD4- +-concession for obsolescent kernels (such as found in RHEL6). For +AD4- +-modern kernels, the fallback shouldn't trigger. GDBserver does not +AD4- +-have the ptrace fallback already, and at some point, we'll consider +AD4- +-removing it from native GDB too. +AD4- +- +AD4- +-/proc/PID/mem has a few advantages over alternatives like +AD4- +-PTRACE+AF8-PEEKTEXT/PTRACE+AF8-POKETEXT or +AD4- process+AF8-vm+AF8-readv/process+AF8-vm+AF8-writev: +AD4- +- +AD4- +-- Because we can use a single read/write call, /proc/PID/mem can be +AD4- +- much more efficient than banging away at +AD4- +- PTRACE+AF8-PEEKTEXT/PTRACE+AF8-POKETEXT, one word at a time. +AD4- +- +AD4- +-- /proc/PID/mem allows writing to read-only pages, which we need to +AD4- +- e.g., plant breakpoint instructions. process+AF8-vm+AF8-writev d= oes not +AD4- +- allow this. +AD4- +- +AD4- +-- /proc/PID/mem allows memory access even if all threads are runnin= g. +AD4- +- OTOH, PTRACE+AF8-PEEKTEXT/PTRACE+AF8-POKETEXT require passing dow= n the +AD4- tid +AD4- +- of a stopped task. This lets us e.g., install breakpoints while = the +AD4- +- inferior is running, clear a displaced stepping scratch pad when = the +AD4- +- thread that was displaced stepping exits, print inferior globals, +AD4- +- etc., all without having to worry about temporarily pausing some +AD4- +- thread. +AD4- +- +AD4- +-- /proc/PID/mem does not suffer from a race that could cause us to +AD4- +- access memory of the wrong address space when the inferior execs. +AD4- +- +AD4- +- process+AF8-vm+AF8-readv/process+AF8-vm+AF8-writev have this prob= lem. +AD4- +- +AD4- +- E.g., say GDB decides to write to memory just while the inferior +AD4- +- execs. In this scenario, GDB could write memory to the post-exec +AD4- +- address space thinking it was writing to the pre-exec address spac= e, +AD4- +- with high probability of corrupting the inferior. Or of GDB decid= es You probably mean +ACI-Or if GDB decides+ACI- here. +AD4- +- instead to read memory just while the inferior execs, it could rea= d +AD4- +- bogus contents out of the wrong address space. +AD4- +- +AD4- +- ptrace used to have this problem too, but no longer has since Lin= ux +AD4- +- commit dbb5afad100a (+ACI-ptrace: make ptrace() fail if the tracee +AD4- +- changed its pid unexpectedly+ACI-), in Linux 5.13. (And if ptrace= were +AD4- +- ever changed to allow access memory via zombie or running threads,= it +AD4- +- would better not forget to consider this scenario.) +AD4- +- +AD4- +- We avoid this race with /proc/PID/mem, by opening the file as soo= n +AD4- +- as we start debugging the inferior, when it is known the inferior = is +AD4- +- stopped, and holding on to the open file descriptor, to be used +AD4- +- whenever we need to access inferior memory. If the inferior execs= or +AD4- +- exits, reading/writing from/to the file returns 0 (EOF), indicati= ng +AD4- +- the address space is gone, and so we return TARGET+AF8-XFER+AF8-E= OF to the +AD4- +- core. We close the old file and open a new one when we finally s= ee +AD4- +- the PTRACE+AF8-EVENT+AF8-EXEC event. +ACo-/ +AD4- +AD4- +ACM-ifndef O+AF8-LARGEFILE +AD4- +ACM-define O+AF8-LARGEFILE 0 +AD4- +AD4- base-commit: 23acbfee6a82cc147b04b74a89d5b34b47c150f4 +AD4- -- +AD4- 2.43.2