From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 64F0A3858D39 for ; Wed, 19 Oct 2022 10:57:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 64F0A3858D39 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29JAfv85006834; Wed, 19 Oct 2022 10:57:18 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kafqbgdf1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Oct 2022 10:57:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ArLUn5l4nnTV4jPI3lbqez0eiUE6aogOoRSkpCL4wr4PucTKYTblb4y/0zBU4qLscr8KyIOo+CUC15ZAOBB0szyDz+EO/GQGhW1mxyC2WDyJi877+tU1oOrav9CYb5JNqlLbRlHrmY/EnzT5odTWGtTA8xLh8wuBEf2AB+XPvob7Z91ccfLy+5QJw/2rfYaWHB4gFBnWMNc5DaAmCK8vwb0G5m44elXUYtfWGrnpx5hhoGV/URl7WY2BL4iEiwLrZklv0kpa7XjumfSvq6aVroyJNJ8PODgeIzBuLgvsuTY5QLkf/4A6qE2YigPghJY0heoENLABAQYgU6UMq0Y8Ng== 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=cYdvM5KFoB4Plilvl+UlfXGYOk+Yp9IaTqBx9inZ7kA=; b=j9LUk4ZTb0NwiJid4E5892N/WGAQKWttAMCcYv8HhSUazmiUEnoXiDs700PUr+oJWl087DpZhr6ohTZaGWWIRoWmorQ3UvfVZyyfrTxWXYyw6lbcHsR2JygochR9w5+5mrpVYzuP+1gCKiinb+13wOuTHLeGk0ZRZ4uPpE0xoBV48lwvynhNw8QSuRHt99VSO3X2TAULeIWuZpTRrETJjUyTyOMabjZAaP7Q94N4BSf2bcZF5ksry13J0G9D+bW6SSIWpJyb9ckBwmRhSYHzy3QisfEiZQSTeUi8adn+/hzyko393GAvCpTUAiH3HKP+9Rn4COsP07yuCnHV7bXEfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by BN8PR15MB2657.namprd15.prod.outlook.com (2603:10b6:408:c9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 19 Oct 2022 10:57:14 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::159e:3e92:9c5:72e3]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::159e:3e92:9c5:72e3%4]) with mapi id 15.20.5723.032; Wed, 19 Oct 2022 10:57:14 +0000 From: Aditya Kamath1 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya Subject: Re: [PATCH] Enable multi process debugging for AIX Thread-Topic: [PATCH] Enable multi process debugging for AIX Thread-Index: AQHYtiqs7fBWvNWu7U6EFq8QRxtmC64V4wdU Date: Wed, 19 Oct 2022 10:57:14 +0000 Message-ID: References: <44ad453e-6196-d334-312f-d5d0414f4476@simark.ca> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|BN8PR15MB2657:EE_ x-ms-office365-filtering-correlation-id: d2607d12-cd22-4841-852a-08dab1c0ae8d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uNhgo/ABsrGpHv0QU4/n6cP35yxq9FVwnQlJ2vqtogdkJbAga/h30XT5+pK+NnkRKzIOLDlGLkaOR5pGYq1JEcBfhPjNymWfyOHMeRmxdWqYqDtguZW01gi9spApMAwmXUgigulxKZSG+JjAP2kbBE2ak/P+KCov4UdBB/u1HhpGL9FMvt0YH25yCcAVHotTurvOJfw9cQCoKFc1oGh5HxYvTxH9EOEb8/MxUNR7SIiuUgxv6Gr+c5IZKhT0K9vOhgKDKPatqYgcRKnRv9/IUyiq1crtqhsxAHT2BqFWd99tSMA6UN6nYFu5GbEVv81Eyifd4Juw1uVDlQGpHaS065nDNT21ze0vQGnmzb7mlGE1TjGJpYIxbPFwRCZXjblVHYXojiL5KF3V7AbzJzvu74m0i9Ls/cbIYgWkvGC8PfsOPb3wfhae/1zVMxIrobPQ6thA+fIgYnH7IpuHHv0U9srVSVHjAHDwo/B9JjB7wbppyb8kZFrtPdZ6DZYVTl+J2UP+HyoUhbEYZv2RRVWCs3BwCRpmILVg9vF/c3IEz88f36h+8DqGEkkigqWPmogHdrEuW8hvmuPj8j5XyxKa3TM0uCY8rc8hzWeXkpSZ5bcYawkV6lxfXqC0eoQ0BGBjVMsHJHBK7WRCev3GAdsUQWf29QYA25Cs7UCiNh6/PW7ztUfUWJLz/zXUS9vmqiZN7EzBpAyCoJYbi5mJViD7dMc7Sg10T5CuljVlqYRvf9y7yEAFk04wvCVaIJ5M32CiyaqsAJN6EG9K6RDDJjJt+XoAVRkjteJ2ZVQ6pchPf30= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR15MB3544.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(136003)(376002)(39860400002)(396003)(366004)(451199015)(33656002)(19627405001)(6506007)(26005)(53546011)(7696005)(9686003)(478600001)(110136005)(66899015)(86362001)(38100700002)(166002)(186003)(55016003)(38070700005)(83380400001)(8936002)(5660300002)(52536014)(122000001)(41300700001)(71200400001)(4326008)(2906002)(99936003)(8676002)(66556008)(66476007)(76116006)(316002)(91956017)(64756008)(66946007)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?krB7U6JczcTcV8A5tqjskUC2N+bi2OMCjphnww+4bJNrT45G9Y6M8mUIrHpu?= =?us-ascii?Q?bfY3OTndpFxusZ5zJU6PmoXQWSLiYm6OTUSoLhaPHyXn/bcBR9Ox5cmyp6dm?= =?us-ascii?Q?F547IZfpggMkuVfhR8ycIGCvmu8orSvMdfKyDyFIM4LlqoA9Wuu+BwiEaN69?= =?us-ascii?Q?hR3M2Z6uKeWqZgAcgzZfJ45/+0MgAK2XYN2H2A8DpLlWEYeGDivmv3VXci2g?= =?us-ascii?Q?YaPUNh2BaiR/IqNQozgRWAB3+oaaAMOr5cvG0QgUjabwhebMMpCwRVeuK85z?= =?us-ascii?Q?4wSkAg2yx67yfVD2XBW5PGu71upW3EUuoJMOWjKXNcJVt2f6LhUOM7PuiQuO?= =?us-ascii?Q?ewnzK4umgBOTXbZ+drfnwwZkJInWgjPl1eBdEzgdEVmVsN2s+fq3SdvETHHv?= =?us-ascii?Q?T4VMOg/VrqbLz+tPZve3Ay2OXr5LXn0yrZZQ1g6wzJyZpCc7f/RVtM/txy0A?= =?us-ascii?Q?wxd7po2jgLDEUUJjOIkBOpWDKGQupjOY8v2X+T3tXgFoWk92rh5GQqTn/D0I?= =?us-ascii?Q?fEFyQVTAffAksmNZrpv5TEALp6qu1b3avZyRUXwQpD7ZNfOcHSVWw03Dxam3?= =?us-ascii?Q?2zYOkWgnqlEfuez+H7xi8Is2GMwGlh+rXIDLKD/GPzES1FVwIgq4NkUcsVhS?= =?us-ascii?Q?chInmXhdpSONbc46JvEsMEA2X0UPWrG2L6i4GL/qXkN+OWRXuQ5hSO657YIj?= =?us-ascii?Q?GWo9FB3z3uWmFiqydvXkRznVD8GCgvbtRzZOViLikhMA5UdRUCU+3944JqI9?= =?us-ascii?Q?NPhsJBOk+Lqtusulb5pKc1TRjbmbvC3lmL9ExiIicElDl7HAB5w3SHxC8FxV?= =?us-ascii?Q?kAB/l2zW/j7jqKSujGyZ5VGNSJgPb0/aHTK4kE/FwdoTd1Tbd0wh0RWNGl11?= =?us-ascii?Q?V6D25vqSk6OL1VvqMHkOacbJZyrXIJLn0jMGJ7A2Qb/Ve+PjHl0w/uVoa0jJ?= =?us-ascii?Q?3rBD/SQC74s5OTvteFlwSaBetYMLEUpw+bfjhJ92pW+G8KhNVkP9o3Gwei+o?= =?us-ascii?Q?OGnm88AkvjSLM2JmrN6GMNjPwjr6hYKOTXLzgFWpnSCH8DID2SAe/sr67qek?= =?us-ascii?Q?t741bMsmsA0OmJsGqT40XiO5zoOwrkAwYH3v1zTMgtJaS5HKgD5kqsOHB02i?= =?us-ascii?Q?2MhfON0qFhA2F37/os9oKmyat8iHGFp9GbvXR2I40a91+RbRg1smEy6cPkx0?= =?us-ascii?Q?kQDagH0zng9cjwW4Dd6JUhLzaH2awB936ZbuZ4GchT0+wTnSN6V2QnOhNHqK?= =?us-ascii?Q?EqOrWG5mQDwfTU6MkFPNmJhCxvG9u4WZEnZEHMPPKgs9zpi+Z4jYmNYvAvCz?= =?us-ascii?Q?XijMpoLxi6rcddbrZ2b76atGqSyO4jbhjzwZ8plEAr/BT9VX4lJPDOhLS1RN?= =?us-ascii?Q?oH0J6s2usItfTeW3bo++jWfljxQWWVE/6riA3CrlcjqL6ykxuR1ca37HSlW1?= =?us-ascii?Q?hc/DOnU5eEGpysG7sxa4y3QfeMsaHgfrWfzhCECcmjth6OzdhrOF4fHKHieZ?= =?us-ascii?Q?aSs5ty697QJer5P4TqespISrGmNqygs3kp3OW8IyqRkjlaTvAvJbmTBHlF7j?= =?us-ascii?Q?gEOGWHcHFV6ZpqfXdIuwiN4NV8Tsd7OQDLa5mrwz?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_" X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2607d12-cd22-4841-852a-08dab1c0ae8d X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2022 10:57:14.6068 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: p6m570hqLrfncWDC/jfIan4pdUNL5uSDDIEdSxxy73anfqv93hvIwXb0q0MDWXQnmLhxE3K6vu7JAZxcv+rYWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR15MB2657 X-Proofpoint-ORIG-GUID: p5gIB_ONcFA289dS8zsmQkqCsWKdO2_R X-Proofpoint-GUID: p5gIB_ONcFA289dS8zsmQkqCsWKdO2_R X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-19_06,2022-10-19_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxlogscore=546 clxscore=1015 phishscore=0 suspectscore=0 mlxscore=0 malwarescore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190058 X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, HTML_MESSAGE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2022 10:57:23 -0000 --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich and Simon, Please find attached a new patch on this. [See: 0001-Enable-multi-process-d= ebugging-for-AIX.patch] I have addressed your issue of having a fork () events from other threads. = There is one difference between AIX and the way freebsd can handle. freebsd= gets the parent child relationship via a structure which has this info. Th= is is obtained using LWP_INFO option in the ptrace () call. However, in AIX= we do not have the same luxury of LWP_INFO. Here is how it works. A fork (= ) event can be caused by the debugee only. Once the child is obtained, we k= now for a fact that either it is detached or stopped in the instruction whe= re the parent was before fork () event. The child is not going to generate = any fork event. Hence only this debugee which the parent will be able to fo= rk again. As far as multiple thread fork is concerned, I have taken care of= it in the code by a fact that a parent process will be in the inferior lis= t. Coming to the W_SFWTED, this also is taken care. Kindly see the did_aix_inf= erior_fork () function. I have kept an assertion as well just in case I get some other event apart = from fork () comes in while I figure out the parent child relationship. Ide= ally, I shouldn't get any other event in AIX. Kindly let me know what is your feeback on this. If its good kindly push the same. Have a nice day ahead. Thanks and regards, Aditya. ________________________________ From: Ulrich Weigand Sent: 22 August 2022 18:55 To: simark@simark.ca ; Aditya Kamath1 ; gdb-patches@sourceware.org Cc: Sangamesh Mallayya Subject: Re: [PATCH] Enable multi process debugging for AIX Aditya Kamath1 wrote: >Enable PT_MULTI option in ptrace () call along with the process ID >parameter and the data parameter enabled. Usually one enables multi >process debugging for all the process debugged in post_startup_inferior >() function like in the Linux world. >On a fork () event either the child can report a wait event first or >the parent. >A status of 57e in hexadecimal or 1406 in decimal is returned from the >waitpid () with the process ID. This can be used to detect a fork () >event. >Since the child process will not have an inferior, we check with the >find_inferior_pid () to see if the child reports first. If it is the >next wait event is generated by the parent in AIX. This is how we >absorb the parent and child event to fetch their process ID. >The vice versa of the above can be done if the parent process reports a >fork () event first. >Once it is done we tell the gdb core that we forked with ourstatus by passing the child ptid. Simon already commented on this in his initial review, and I think this is still not completely addressed. Most importantly, your code simply assumes that it is guaranteed that the two wait events for parent and child will arrive immediately after one another, and the only uncertain issue is the sequence between the two. Is is actually guaranteed that this is the case? Or could we also have random other wait events (e.g. from other threads / processes) that can be reported in between? In that case, your implementation now introduces a race condition where some event might get lost. A proper fix might then have to be more involved, e.g. by storing those event on some sort of "pending list" and only report a fork event to common code once both sides have checked in, similar to the FreeBSD approach Simon already pointed out to you. As to this: +# define AIX_FORK_EVENT 0x57e It would be much preferable to use the official names for these constants. For example, the document you mention here: >More about this can be read in the document >https://www.ibm.com/docs/en/aix/7.2?topic=3Dp-ptrace-ptracex-ptrace64- subroutine talks about: W_SFWTED Process stopped during execution of the fork subroutine. Is this the 0x57e event? If so, we should call it W_SFWTED in GDB as well, and not some made-up name. It would be great if you could find the official names for all the other "magic" constants like 0x7f, 0x17f, 0x137f etc. as well. Bye, Ulrich --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Enable-multi-process-debugging-for-AIX.patch" Content-Description: 0001-Enable-multi-process-debugging-for-AIX.patch Content-Disposition: attachment; filename="0001-Enable-multi-process-debugging-for-AIX.patch"; size=6934; creation-date="Wed, 19 Oct 2022 10:57:06 GMT"; modification-date="Wed, 19 Oct 2022 10:57:14 GMT" Content-Transfer-Encoding: base64 RnJvbSA0M2E3MGQ2NjIxYTMwMGZlNmZhOGExM2VmMDJlMGMzZmM3YWFhYThjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFkaGFyIEthbWF0aCA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4KRGF0ZTogV2VkLCAxOSBPY3QgMjAyMiAwNTozNTo0NCAtMDUwMApTdWJqZWN0 OiBbUEFUQ0hdIEVuYWJsZSBtdWx0aS1wcm9jZXNzIGRlYnVnZ2luZyBmb3IgQUlYCgotLS0KIGdk Yi9yczYwMDAtYWl4LW5hdC5jIHwgMTgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvcnM2MDAwLWFpeC1uYXQuYyBiL2dkYi9yczYwMDAtYWl4 LW5hdC5jCmluZGV4IGNiMTQxNDI3Njk2Li4zOTM4ODk2ODUzNyAxMDA2NDQKLS0tIGEvZ2RiL3Jz NjAwMC1haXgtbmF0LmMKKysrIGIvZ2RiL3JzNjAwMC1haXgtbmF0LmMKQEAgLTkxLDEwICs5MSwx MyBAQCBjbGFzcyByczYwMDBfbmF0X3RhcmdldCBmaW5hbCA6IHB1YmxpYyBpbmZfcHRyYWNlX3Rh cmdldAogCiAgIHB0aWRfdCB3YWl0IChwdGlkX3QsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAq LCB0YXJnZXRfd2FpdF9mbGFncykgb3ZlcnJpZGU7CiAKKyAgLyogRm9yayBkZXRlY3Rpb24gcmVs YXRlZCBmdW5jdGlvbnMsIEZvciBhZGRpbmcgbXVsdGkgcHJvY2VzcyBkZWJ1Z2dpbmcKKyAgICAg c3VwcG9ydC4gICovCisgIHZvaWQgZm9sbG93X2ZvcmsgKGluZmVyaW9yICosIHB0aWRfdCwgdGFy Z2V0X3dhaXRraW5kLCBib29sLCBib29sKSBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogCi0gIHZv aWQgcG9zdF9zdGFydHVwX2luZmVyaW9yIChwdGlkX3QgcHRpZCkgb3ZlcnJpZGUKLSAgeyAvKiBO b3RoaW5nLiAgKi8gfQorICB2b2lkIHBvc3Rfc3RhcnR1cF9pbmZlcmlvciAocHRpZF90IHB0aWQp IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICBlbnVtIHRhcmdldF94ZmVyX3N0YXR1cwpAQCAtMTA3 LDYgKzExMCw4MyBAQCBjbGFzcyByczYwMDBfbmF0X3RhcmdldCBmaW5hbCA6IHB1YmxpYyBpbmZf cHRyYWNlX3RhcmdldAogCiBzdGF0aWMgcnM2MDAwX25hdF90YXJnZXQgdGhlX3JzNjAwMF9uYXRf dGFyZ2V0OwogCisvKiBUaGUgYmVsb3cgZGVjbGFyYXRpb24gaXMgdG8gdHJhY2sgbnVtYmVyIG9m IHRpbWVzLCBwYXJlbnQgaGFzCisgICByZXBvcnRlZCBmb3JrIGV2ZW50IGJlZm9yZSBpdHMgY2hp bGRyZW4uICAqLworCitzdGF0aWMgc3RkOjpsaXN0PHBpZF90PiBhaXhfcGVuZGluZ19wYXJlbnQ7 CisKKy8qIFRoZSBiZWxvdyBkZWNsYXJhdGlvbiBpcyBmb3IgYSBjaGlsZCBwcm9jZXNzIGV2ZW50 IHRoYXQKKyAgIGlzIHJlcG9ydGVkIGJlZm9yZSBpdHMgY29ycmVzcG9uZGluZyBwYXJlbnQgcHJv Y2VzcyBpbgorICAgdGhlIGV2ZW50IG9mIGEgZm9yayAoKS4gICovCisKK3N0YXRpYyBzdGQ6Omxp c3Q8cGlkX3Q+IGFpeF9wZW5kaW5nX2NoaWxkcmVuOworCitzdGF0aWMgdm9pZAorYWl4X3JlbWVt YmVyX2NoaWxkIChwaWRfdCBwaWQpCit7CisgIGFpeF9wZW5kaW5nX2NoaWxkcmVuLnB1c2hfZnJv bnQgKHBpZCk7Cit9CisKK3N0YXRpYyB2b2lkCithaXhfcmVtZW1iZXJfcGFyZW50IChwaWRfdCBw aWQpCit7CisgIGFpeF9wZW5kaW5nX3BhcmVudC5wdXNoX2Zyb250IChwaWQpOworfQorCisvKiBJ biB0aGUgYmVsb3cgZnVuY3Rpb24gd2UgY2hlY2sgaWYgdGhlcmUgd2FzIGFueSBjaGlsZAorICAg cHJvY2VzcyBwZW5kaW5nLiAgSWYgaXQgZXhpc3RzIHdlIHJldHVybiBpdCBmcm9tIHRoZQorICAg bGlzdCwgb3RoZXJ3aXNlIHdlIHJldHVybiBhIG51bGwuICAqLworCitzdGF0aWMgcGlkX3QKK2Fp eF9pc19jaGlsZF9wZW5kaW5nICgpCit7CisgIGF1dG8gaXQgPSBhaXhfcGVuZGluZ19jaGlsZHJl bi5iZWdpbiAoKTsKKyAgaWYgKGl0ICE9IGFpeF9wZW5kaW5nX2NoaWxkcmVuLmVuZCAoKSkKKyAg eworICAgIGludCBjaGlsZCA9ICppdDsKKyAgICBhaXhfcGVuZGluZ19jaGlsZHJlbi5lcmFzZSAo aXQpOworICAgIHJldHVybiBjaGlsZDsKKyAgfQorICByZXR1cm4gMDsKK30KKworLyogSW4gdGhl IGJlbG93IGZ1bmN0aW9uIHdlIGNoZWNrIGlmIHRoZXJlIHdhcyBhbnkgcGFyZW50IAorICAgcHJv Y2VzcyBwZW5kaW5nLiAgSWYgaXQgZXhpc3RzIHdlIHJldHVybiBpdCBmcm9tIHRoZQorICAgbGlz dCwgb3RoZXJ3aXNlIHdlIHJldHVybiBhIG51bGwuICAqLworCitzdGF0aWMgcGlkX3QKK2FpeF9p c19wYXJlbnRfcGVuZGluZyAoKQoreworICBhdXRvIGl0ID0gYWl4X3BlbmRpbmdfcGFyZW50LmJl Z2luICgpOworICBpZiAoaXQgIT0gYWl4X3BlbmRpbmdfcGFyZW50LmVuZCAoKSkKKyAgeworICAg IGludCBwYXJlbnQgPSAqaXQ7CisgICAgYWl4X3BlbmRpbmdfcGFyZW50LmVyYXNlIChpdCk7Cisg ICAgcmV0dXJuIHBhcmVudDsKKyAgfQorICByZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlv biBjaGVja3MgaWYgdGhlcmUgd2FzIGEgZm9yayAoKSBldmVudC4gICovCisKK3N0YXRpYyBib29s CitkaWRfYWl4X2luZmVyaW9yX2ZvcmsgKGludCBzdGF0dXMpCit7CisgIC8qIElmIG11bHRpLXBy b2Nlc3MgZGVidWcgbW9kZSBpcyBlbmFibGVkLCB0aGUgc3RhdHVzCisgICAgIGxvY2F0aW9uIGlz IHNldCB0byBXX1NGV1RFRC4gICovCisKKyAgc3RhdHVzID0gc3RhdHVzICYgMHhmZjsKKworICAv KiBFbGltaW5hdGUgdGhlIGxhc3QgZmV3IGJpdHMuIElmIHRoZSBXX1NGV1RFRCBpcyBzZXQKKyAg ICAgd2hpY2ggaXMgZXF1YWwgdG8gMHg3ZSwgaXQgaXMgYSBmb3JrIGV2ZW50IG90aGVyd2lzZQor ICAgICBpdCBpcyBub3QuICAqLworCisgIGlmIChzdGF0dXMgXiBXX1NGV1RFRCkKKyAgICByZXR1 cm4gZmFsc2U7CisgIGVsc2UKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogLyogR2l2ZW4gUkVHTk8s IGEgZ2RiIHJlZ2lzdGVyIG51bWJlciwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nCiAgICBudW1i ZXIgc3VpdGFibGUgZm9yIHVzZSBhcyBhIHB0cmFjZSgpIHBhcmFtZXRlci4gIFJldHVybiAtMSBp ZgogICAgdGhlcmUncyBubyBzdWl0YWJsZSBtYXBwaW5nLiAgQWxzbywgc2V0IHRoZSBpbnQgcG9p bnRlZCB0byBieQpAQCAtMTg3LDYgKzI2Nyw0NyBAQCByczYwMDBfcHRyYWNlNjQgKGludCByZXEs IGludCBpZCwgbG9uZyBsb25nIGFkZHIsIGludCBkYXRhLCB2b2lkICpidWYpCiAgIHJldHVybiBy ZXQ7CiB9CiAKK3ZvaWQgcnM2MDAwX25hdF90YXJnZXQ6OnBvc3Rfc3RhcnR1cF9pbmZlcmlvciAo cHRpZF90IHB0aWQpCit7CisKKyAgLyogSW4gQUlYIHRvIHR1cm4gb24gbXVsdGkgcHJvY2VzcyBk ZWJ1Z2dpbmcgaW4gcHRyYWNlCisgICAgIFBUX01VTFRJIGlzIHRoZSBvcHRpb24gdG8gYmUgcGFz c2VkLAorICAgICB3aXRoIHRoZSBwcm9jZXNzIElEIHdoaWNoIGNhbiBmb3JrICgpIGFuZAorICAg ICB0aGUgZGF0YSBwYXJhbWV0ZXIgW2ZvdXJ0aCBwYXJhbWV0ZXJdIG11c3QgYmUgMS4gICovCisK KyAgaWYgKCFBUkNINjQgKCkpCisgICAgcnM2MDAwX3B0cmFjZTMyIChQVF9NVUxUSSwgcHRpZC5w aWQoKSwgMCwgMSwgMCk7CisgIGVsc2UKKyAgICByczYwMDBfcHRyYWNlNjQgKFBUX01VTFRJLCBw dGlkLnBpZCgpLCAwLCAxLCAwKTsKK30KKwordm9pZAorcnM2MDAwX25hdF90YXJnZXQ6OmZvbGxv d19mb3JrIChpbmZlcmlvciAqY2hpbGRfaW5mLCBwdGlkX3QgY2hpbGRfcHRpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dhaXRraW5kIGZvcmtfa2luZCwgYm9vbCBmb2xsb3df Y2hpbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGRldGFjaF9mb3JrKQoreworCisgIC8qIE9uY2UgdGhlIGZvcmsgZXZlbnQgaXMg ZGV0ZWN0ZWQgdGhlIGluZnJ1bi5jIGNvZGUKKyAgICAgY2FsbHMgdGhlIHRhcmdldF9mb2xsb3df Zm9yayB0byB0YWtlIGNhcmUgb2YKKyAgICAgZm9sbG93IGNoaWxkIGFuZCBkZXRhY2ggdGhlIGNo aWxkIGFjdGl2aXR5IHdoaWNoIGlzCisgICAgIGRvbmUgdXNpbmcgdGhlIGZ1bmN0aW9uIGJlbG93 LiAgKi8KKworICBpbmZfcHRyYWNlX3RhcmdldDo6Zm9sbG93X2ZvcmsgKGNoaWxkX2luZiwgY2hp bGRfcHRpZCwgZm9ya19raW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvbGxvd19jaGlsZCwgZGV0YWNoX2ZvcmspOworCisgIC8qIElmIHdlIGRldGFjaCBmb3Jr IGFuZCBmb2xsb3cgY2hpbGQgd2UgZG8gbm90IHdhbnQgdGhlIGNoaWxkCisgICAgIHByb2Nlc3Mg dG8gZ2VuZWF0ZSBldmVudHMgdGhhdCBwdHJhY2UgY2FuIHRyYWNlLiAgSGVuY2Ugd2UKKyAgICAg ZGV0YWNoIGl0LiAgKi8KKworICBpZiAoZGV0YWNoX2ZvcmsgJiYgIWZvbGxvd19jaGlsZCkKKyAg eworICAgIGlmIChBUkNINjQgKCkpCisgICAgICByczYwMDBfcHRyYWNlNjQgKFBUX0RFVEFDSCwg Y2hpbGRfcHRpZC5waWQgKCksIDAsIDAsIDApOworICAgIGVsc2UKKyAgICAgIHJzNjAwMF9wdHJh Y2UzMiAoUFRfREVUQUNILCBjaGlsZF9wdGlkLnBpZCAoKSwgMCwgMCwgMCk7CisgIH0KK30KKwog LyogRmV0Y2ggcmVnaXN0ZXIgUkVHTk8gZnJvbSB0aGUgaW5mZXJpb3IuICAqLwogCiBzdGF0aWMg dm9pZApAQCAtNTM4LDkgKzY1OSw2MyBAQCByczYwMDBfbmF0X3RhcmdldDo6d2FpdCAocHRpZF90 IHB0aWQsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqb3Vyc3RhdHVzLAogICAvKiBzdG9wIGFm dGVyIGxvYWQiIHN0YXR1cy4gICovCiAgIGlmIChzdGF0dXMgPT0gMHg1N2MpCiAgICAgb3Vyc3Rh dHVzLT5zZXRfbG9hZGVkICgpOwotICAvKiBzaWduYWwgMC4gIEkgaGF2ZSBubyBpZGVhIHdoeSB3 YWl0KDIpIHJldHVybnMgd2l0aCB0aGlzIHN0YXR1cyB3b3JkLiAgKi8KLSAgZWxzZSBpZiAoc3Rh dHVzID09IDB4N2YpCisgIC8qIDB4N2YgaXMgc2lnbmFsIDAuICAqLworICAvKiAweDE3ZiBhbmQg MHgxMzdmIGluIGhleGFkZWNpbWFsIGFyZSBzdGF0dXMgcmV0dXJuZWQgaWYKKyAgICAgaWYgd2Ug Zm9sbG93IHBhcmVudCwKKyAgICAgYSBzd2l0Y2ggaXMgbWFkZSB0byBhIGNoaWxkIHBvc3QgcGFy ZW50IGV4ZWN1dGlvbgorICAgICBhbmQgY2hpbGQgY29udGludWVzIGl0cyBleGVjdXRpb24gW3Vz ZXIgc3dpdGNoZXMgdG8gY2hpbGQgYW5kCisgICAgIHByZXNzZXMgY29udGludWVdLiAgKi8KKyAg ZWxzZSBpZiAoc3RhdHVzID09IDB4N2YgfHwgc3RhdHVzID09IDB4MTdmIHx8IHN0YXR1cyA9PSAw eDEzN2YpCiAgICAgb3Vyc3RhdHVzLT5zZXRfc3B1cmlvdXMgKCk7CisgIC8qIENoZWNrIGZvciBh IGZvcmsgKCkgZXZlbnQuICAqLworICBlbHNlIGlmIChkaWRfYWl4X2luZmVyaW9yX2ZvcmsgKHN0 YXR1cykpCisgIHsKKyAgICAvKiBDaGVja2luZyB3aGV0aGVyIGl0IGlzIGEgcGFyZW50IG9yIGEg Y2hpbGQgZXZlbnQuICAqLworCisgICAgaWYgKGZpbmRfaW5mZXJpb3JfcGlkICh0aGlzLCBwaWQp ID09IG51bGxwdHIpCisgICAgICBhaXhfcmVtZW1iZXJfY2hpbGQgKHBpZCk7CisgICAgZWxzZQor ICAgICAgYWl4X3JlbWVtYmVyX3BhcmVudCAocGlkKTsKKworICAgIHdoaWxlICgxKQorICAgIHsK KyAgICAgIHBpZCA9IHdhaXRwaWQgKC0xLCAmc3RhdHVzLCAwKTsKKyAgICAgIGdkYl9hc3NlcnQg KGRpZF9haXhfaW5mZXJpb3JfZm9yayAoc3RhdHVzKSA9PSB0cnVlKTsKKyAgICAgIAorICAgICAg LyogSWYgdGhlIGV2ZW50IGlzIGEgY2hpbGQgd2UgY2hlY2sgaWYgdGhlcmUgd2FzIGEgcGFyZW50 CisgICAgICAgICBldmVudCByZWNvcmRlZCBiZWZvcmUuICBJZiB5ZXMgd2UgZ290IHRoZSBwYXJl bnQgY2hpbGQKKyAgICAgICAgIHJlbGF0aW9uc2hpcC4gIElmIG5vdCB3ZSBwdXNoIHRoaXMgY2hp bGQgYW5kIHdhaXQgZm9yIAorICAgICAgICAgdGhlIG5leHQgZm9yayAoKSBldmVudC4gICovCisg CisgICAgICBpZiAoZmluZF9pbmZlcmlvcl9waWQgKHRoaXMsIHBpZCkgPT0gbnVsbHB0cikKKyAg ICAgIHsKKyAgICAgICAgcGlkX3QgcGFyZW50X3BpZCA9IGFpeF9pc19wYXJlbnRfcGVuZGluZyAo KTsKKyAgICAgICAgaWYgKHBhcmVudF9waWQgPiAwKQorICAgICAgICB7CisgICAgICAgICAgb3Vy c3RhdHVzLT5zZXRfZm9ya2VkIChwdGlkX3QgKHBpZCkpOworICAgICAgICAgIHJldHVybiBwdGlk X3QgKHBhcmVudF9waWQpOworICAgICAgICB9CisgICAgICAgIGFpeF9yZW1lbWJlcl9jaGlsZCAo cGlkKTsKKyAgICAgIH0KKworICAgICAgLyogSWYgdGhlIGV2ZW50IGlzIGEgcGFyZW50IHdlIGNo ZWNrIGlmIHRoZXJlIHdhcyBhIGNoaWxkCisgICAgICAgICBldmVudCByZWNvcmRlZCBiZWZvcmUu ICBJZiB5ZXMgd2UgZ290IHRoZSBwYXJlbnQgY2hpbGQKKyAgICAgICAgIHJlbGF0aW9uc2hpcC4g IElmIG5vdCB3ZSBwdXNoIHRoaXMgcGFyZW50IGFuZCB3YWl0IGZvciAKKyAgICAgICAgIHRoZSBu ZXh0IGZvcmsgKCkgZXZlbnQuICAqLworCisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIHBp ZF90IGNoaWxkX3BpZCA9IGFpeF9pc19jaGlsZF9wZW5kaW5nICgpOworICAgICAgICBpZiAoY2hp bGRfcGlkID4gMCkKKyAgICAgICAgeworICAgICAgICAgIG91cnN0YXR1cy0+c2V0X2ZvcmtlZCAo cHRpZF90IChjaGlsZF9waWQpKTsKKyAgICAgICAgICByZXR1cm4gcHRpZF90IChwaWQpOworICAg ICAgICB9CisgICAgICAgIGFpeF9yZW1lbWJlcl9wYXJlbnQgKHBpZCk7CisgICAgICB9IAorICAg IH0KKyAgfQorCiAgIC8qIEEgbm9ybWFsIHdhaXRzdGF0dXMuICBMZXQgdGhlIHVzdWFsIG1hY3Jv cyBkZWFsIHdpdGggaXQuICAqLwogICBlbHNlCiAgICAgKm91cnN0YXR1cyA9IGhvc3Rfc3RhdHVz X3RvX3dhaXRzdGF0dXMgKHN0YXR1cyk7Ci0tIAoyLjMxLjEKCg== --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 64F0A3858D39 for ; Wed, 19 Oct 2022 10:57:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 64F0A3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29JAfv85006834; Wed, 19 Oct 2022 10:57:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=pp1; bh=cYdvM5KFoB4Plilvl+UlfXGYOk+Yp9IaTqBx9inZ7kA=; b=FjPOD7MisYj0Q/X3UUJ1LKdxV87344M/isYLyPgyfM1XlVrQp5TBIbRakZIwvyDyrU35 kSDu8BAJi0iNomw+TYXawlnuu7th5JVGe91GpF4ktV7FpZbnBOnwYnfqC+6hck8bY6uI bdkFBeQNTMrqWoDS87q531tJL4ammnVlOcE9nW+yspGouXCzDlrzDZbmcIwXhfLhgUYN 45P0gqFvGOgUwpts8ncX+ETpRU2Se1rtdui6NPbDnhD2DS1ouccTkeiGjFJhmrZm441b GusQC9m4KhAkMxRYyGKFrWedIZ5niHYoBTxj35hzrN+1HVMmdvwpKSpYkguLp6pZ5XMf Jw== Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kafqbgdf1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Oct 2022 10:57:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ArLUn5l4nnTV4jPI3lbqez0eiUE6aogOoRSkpCL4wr4PucTKYTblb4y/0zBU4qLscr8KyIOo+CUC15ZAOBB0szyDz+EO/GQGhW1mxyC2WDyJi877+tU1oOrav9CYb5JNqlLbRlHrmY/EnzT5odTWGtTA8xLh8wuBEf2AB+XPvob7Z91ccfLy+5QJw/2rfYaWHB4gFBnWMNc5DaAmCK8vwb0G5m44elXUYtfWGrnpx5hhoGV/URl7WY2BL4iEiwLrZklv0kpa7XjumfSvq6aVroyJNJ8PODgeIzBuLgvsuTY5QLkf/4A6qE2YigPghJY0heoENLABAQYgU6UMq0Y8Ng== 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=cYdvM5KFoB4Plilvl+UlfXGYOk+Yp9IaTqBx9inZ7kA=; b=j9LUk4ZTb0NwiJid4E5892N/WGAQKWttAMCcYv8HhSUazmiUEnoXiDs700PUr+oJWl087DpZhr6ohTZaGWWIRoWmorQ3UvfVZyyfrTxWXYyw6lbcHsR2JygochR9w5+5mrpVYzuP+1gCKiinb+13wOuTHLeGk0ZRZ4uPpE0xoBV48lwvynhNw8QSuRHt99VSO3X2TAULeIWuZpTRrETJjUyTyOMabjZAaP7Q94N4BSf2bcZF5ksry13J0G9D+bW6SSIWpJyb9ckBwmRhSYHzy3QisfEiZQSTeUi8adn+/hzyko393GAvCpTUAiH3HKP+9Rn4COsP07yuCnHV7bXEfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by BN8PR15MB2657.namprd15.prod.outlook.com (2603:10b6:408:c9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 19 Oct 2022 10:57:14 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::159e:3e92:9c5:72e3]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::159e:3e92:9c5:72e3%4]) with mapi id 15.20.5723.032; Wed, 19 Oct 2022 10:57:14 +0000 From: Aditya Kamath1 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya Subject: Re: [PATCH] Enable multi process debugging for AIX Thread-Topic: [PATCH] Enable multi process debugging for AIX Thread-Index: AQHYtiqs7fBWvNWu7U6EFq8QRxtmC64V4wdU Date: Wed, 19 Oct 2022 10:57:14 +0000 Message-ID: References: <44ad453e-6196-d334-312f-d5d0414f4476@simark.ca> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|BN8PR15MB2657:EE_ x-ms-office365-filtering-correlation-id: d2607d12-cd22-4841-852a-08dab1c0ae8d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uNhgo/ABsrGpHv0QU4/n6cP35yxq9FVwnQlJ2vqtogdkJbAga/h30XT5+pK+NnkRKzIOLDlGLkaOR5pGYq1JEcBfhPjNymWfyOHMeRmxdWqYqDtguZW01gi9spApMAwmXUgigulxKZSG+JjAP2kbBE2ak/P+KCov4UdBB/u1HhpGL9FMvt0YH25yCcAVHotTurvOJfw9cQCoKFc1oGh5HxYvTxH9EOEb8/MxUNR7SIiuUgxv6Gr+c5IZKhT0K9vOhgKDKPatqYgcRKnRv9/IUyiq1crtqhsxAHT2BqFWd99tSMA6UN6nYFu5GbEVv81Eyifd4Juw1uVDlQGpHaS065nDNT21ze0vQGnmzb7mlGE1TjGJpYIxbPFwRCZXjblVHYXojiL5KF3V7AbzJzvu74m0i9Ls/cbIYgWkvGC8PfsOPb3wfhae/1zVMxIrobPQ6thA+fIgYnH7IpuHHv0U9srVSVHjAHDwo/B9JjB7wbppyb8kZFrtPdZ6DZYVTl+J2UP+HyoUhbEYZv2RRVWCs3BwCRpmILVg9vF/c3IEz88f36h+8DqGEkkigqWPmogHdrEuW8hvmuPj8j5XyxKa3TM0uCY8rc8hzWeXkpSZ5bcYawkV6lxfXqC0eoQ0BGBjVMsHJHBK7WRCev3GAdsUQWf29QYA25Cs7UCiNh6/PW7ztUfUWJLz/zXUS9vmqiZN7EzBpAyCoJYbi5mJViD7dMc7Sg10T5CuljVlqYRvf9y7yEAFk04wvCVaIJ5M32CiyaqsAJN6EG9K6RDDJjJt+XoAVRkjteJ2ZVQ6pchPf30= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR15MB3544.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(136003)(376002)(39860400002)(396003)(366004)(451199015)(33656002)(19627405001)(6506007)(26005)(53546011)(7696005)(9686003)(478600001)(110136005)(66899015)(86362001)(38100700002)(166002)(186003)(55016003)(38070700005)(83380400001)(8936002)(5660300002)(52536014)(122000001)(41300700001)(71200400001)(4326008)(2906002)(99936003)(8676002)(66556008)(66476007)(76116006)(316002)(91956017)(64756008)(66946007)(66446008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?krB7U6JczcTcV8A5tqjskUC2N+bi2OMCjphnww+4bJNrT45G9Y6M8mUIrHpu?= =?us-ascii?Q?bfY3OTndpFxusZ5zJU6PmoXQWSLiYm6OTUSoLhaPHyXn/bcBR9Ox5cmyp6dm?= =?us-ascii?Q?F547IZfpggMkuVfhR8ycIGCvmu8orSvMdfKyDyFIM4LlqoA9Wuu+BwiEaN69?= =?us-ascii?Q?hR3M2Z6uKeWqZgAcgzZfJ45/+0MgAK2XYN2H2A8DpLlWEYeGDivmv3VXci2g?= =?us-ascii?Q?YaPUNh2BaiR/IqNQozgRWAB3+oaaAMOr5cvG0QgUjabwhebMMpCwRVeuK85z?= =?us-ascii?Q?4wSkAg2yx67yfVD2XBW5PGu71upW3EUuoJMOWjKXNcJVt2f6LhUOM7PuiQuO?= =?us-ascii?Q?ewnzK4umgBOTXbZ+drfnwwZkJInWgjPl1eBdEzgdEVmVsN2s+fq3SdvETHHv?= =?us-ascii?Q?T4VMOg/VrqbLz+tPZve3Ay2OXr5LXn0yrZZQ1g6wzJyZpCc7f/RVtM/txy0A?= =?us-ascii?Q?wxd7po2jgLDEUUJjOIkBOpWDKGQupjOY8v2X+T3tXgFoWk92rh5GQqTn/D0I?= =?us-ascii?Q?fEFyQVTAffAksmNZrpv5TEALp6qu1b3avZyRUXwQpD7ZNfOcHSVWw03Dxam3?= =?us-ascii?Q?2zYOkWgnqlEfuez+H7xi8Is2GMwGlh+rXIDLKD/GPzES1FVwIgq4NkUcsVhS?= =?us-ascii?Q?chInmXhdpSONbc46JvEsMEA2X0UPWrG2L6i4GL/qXkN+OWRXuQ5hSO657YIj?= =?us-ascii?Q?GWo9FB3z3uWmFiqydvXkRznVD8GCgvbtRzZOViLikhMA5UdRUCU+3944JqI9?= =?us-ascii?Q?NPhsJBOk+Lqtusulb5pKc1TRjbmbvC3lmL9ExiIicElDl7HAB5w3SHxC8FxV?= =?us-ascii?Q?kAB/l2zW/j7jqKSujGyZ5VGNSJgPb0/aHTK4kE/FwdoTd1Tbd0wh0RWNGl11?= =?us-ascii?Q?V6D25vqSk6OL1VvqMHkOacbJZyrXIJLn0jMGJ7A2Qb/Ve+PjHl0w/uVoa0jJ?= =?us-ascii?Q?3rBD/SQC74s5OTvteFlwSaBetYMLEUpw+bfjhJ92pW+G8KhNVkP9o3Gwei+o?= =?us-ascii?Q?OGnm88AkvjSLM2JmrN6GMNjPwjr6hYKOTXLzgFWpnSCH8DID2SAe/sr67qek?= =?us-ascii?Q?t741bMsmsA0OmJsGqT40XiO5zoOwrkAwYH3v1zTMgtJaS5HKgD5kqsOHB02i?= =?us-ascii?Q?2MhfON0qFhA2F37/os9oKmyat8iHGFp9GbvXR2I40a91+RbRg1smEy6cPkx0?= =?us-ascii?Q?kQDagH0zng9cjwW4Dd6JUhLzaH2awB936ZbuZ4GchT0+wTnSN6V2QnOhNHqK?= =?us-ascii?Q?EqOrWG5mQDwfTU6MkFPNmJhCxvG9u4WZEnZEHMPPKgs9zpi+Z4jYmNYvAvCz?= =?us-ascii?Q?XijMpoLxi6rcddbrZ2b76atGqSyO4jbhjzwZ8plEAr/BT9VX4lJPDOhLS1RN?= =?us-ascii?Q?oH0J6s2usItfTeW3bo++jWfljxQWWVE/6riA3CrlcjqL6ykxuR1ca37HSlW1?= =?us-ascii?Q?hc/DOnU5eEGpysG7sxa4y3QfeMsaHgfrWfzhCECcmjth6OzdhrOF4fHKHieZ?= =?us-ascii?Q?aSs5ty697QJer5P4TqespISrGmNqygs3kp3OW8IyqRkjlaTvAvJbmTBHlF7j?= =?us-ascii?Q?gEOGWHcHFV6ZpqfXdIuwiN4NV8Tsd7OQDLa5mrwz?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_" X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2607d12-cd22-4841-852a-08dab1c0ae8d X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2022 10:57:14.6068 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: p6m570hqLrfncWDC/jfIan4pdUNL5uSDDIEdSxxy73anfqv93hvIwXb0q0MDWXQnmLhxE3K6vu7JAZxcv+rYWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR15MB2657 X-Proofpoint-ORIG-GUID: p5gIB_ONcFA289dS8zsmQkqCsWKdO2_R X-Proofpoint-GUID: p5gIB_ONcFA289dS8zsmQkqCsWKdO2_R X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-19_06,2022-10-19_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxlogscore=546 clxscore=1015 phishscore=0 suspectscore=0 mlxscore=0 malwarescore=0 bulkscore=0 spamscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190058 X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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 List-Id: Message-ID: <20221019105714.XBaaWIT_D0snGJ_nN0tYiGjuAz9ZAonVzohiNCSdh7c@z> --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_" --_000_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich and Simon, Please find attached a new patch on this. [See: 0001-Enable-multi-process-d= ebugging-for-AIX.patch] I have addressed your issue of having a fork () events from other threads. = There is one difference between AIX and the way freebsd can handle. freebsd= gets the parent child relationship via a structure which has this info. Th= is is obtained using LWP_INFO option in the ptrace () call. However, in AIX= we do not have the same luxury of LWP_INFO. Here is how it works. A fork (= ) event can be caused by the debugee only. Once the child is obtained, we k= now for a fact that either it is detached or stopped in the instruction whe= re the parent was before fork () event. The child is not going to generate = any fork event. Hence only this debugee which the parent will be able to fo= rk again. As far as multiple thread fork is concerned, I have taken care of= it in the code by a fact that a parent process will be in the inferior lis= t. Coming to the W_SFWTED, this also is taken care. Kindly see the did_aix_inf= erior_fork () function. I have kept an assertion as well just in case I get some other event apart = from fork () comes in while I figure out the parent child relationship. Ide= ally, I shouldn't get any other event in AIX. Kindly let me know what is your feeback on this. If its good kindly push the same. Have a nice day ahead. Thanks and regards, Aditya. ________________________________ From: Ulrich Weigand Sent: 22 August 2022 18:55 To: simark@simark.ca ; Aditya Kamath1 ; gdb-patches@sourceware.org Cc: Sangamesh Mallayya Subject: Re: [PATCH] Enable multi process debugging for AIX Aditya Kamath1 wrote: >Enable PT_MULTI option in ptrace () call along with the process ID >parameter and the data parameter enabled. Usually one enables multi >process debugging for all the process debugged in post_startup_inferior >() function like in the Linux world. >On a fork () event either the child can report a wait event first or >the parent. >A status of 57e in hexadecimal or 1406 in decimal is returned from the >waitpid () with the process ID. This can be used to detect a fork () >event. >Since the child process will not have an inferior, we check with the >find_inferior_pid () to see if the child reports first. If it is the >next wait event is generated by the parent in AIX. This is how we >absorb the parent and child event to fetch their process ID. >The vice versa of the above can be done if the parent process reports a >fork () event first. >Once it is done we tell the gdb core that we forked with ourstatus by passing the child ptid. Simon already commented on this in his initial review, and I think this is still not completely addressed. Most importantly, your code simply assumes that it is guaranteed that the two wait events for parent and child will arrive immediately after one another, and the only uncertain issue is the sequence between the two. Is is actually guaranteed that this is the case? Or could we also have random other wait events (e.g. from other threads / processes) that can be reported in between? In that case, your implementation now introduces a race condition where some event might get lost. A proper fix might then have to be more involved, e.g. by storing those event on some sort of "pending list" and only report a fork event to common code once both sides have checked in, similar to the FreeBSD approach Simon already pointed out to you. As to this: +# define AIX_FORK_EVENT 0x57e It would be much preferable to use the official names for these constants. For example, the document you mention here: >More about this can be read in the document >https://www.ibm.com/docs/en/aix/7.2?topic=3Dp-ptrace-ptracex-ptrace64- subroutine talks about: W_SFWTED Process stopped during execution of the fork subroutine. Is this the 0x57e event? If so, we should call it W_SFWTED in GDB as well, and not some made-up name. It would be great if you could find the official names for all the other "magic" constants like 0x7f, 0x17f, 0x137f etc. as well. Bye, Ulrich --_000_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_-- --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Enable-multi-process-debugging-for-AIX.patch" Content-Description: 0001-Enable-multi-process-debugging-for-AIX.patch Content-Disposition: attachment; filename="0001-Enable-multi-process-debugging-for-AIX.patch"; size=6934; creation-date="Wed, 19 Oct 2022 10:57:06 GMT"; modification-date="Wed, 19 Oct 2022 10:57:14 GMT" Content-Transfer-Encoding: base64 RnJvbSA0M2E3MGQ2NjIxYTMwMGZlNmZhOGExM2VmMDJlMGMzZmM3YWFhYThj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogV2Vk LCAxOSBPY3QgMjAyMiAwNTozNTo0NCAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IEVuYWJsZSBtdWx0aS1wcm9jZXNzIGRlYnVnZ2luZyBmb3IgQUlYCgotLS0K IGdkYi9yczYwMDAtYWl4LW5hdC5jIHwgMTgzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAx NzkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9nZGIvcnM2MDAwLWFpeC1uYXQuYyBiL2dkYi9yczYwMDAtYWl4LW5hdC5j CmluZGV4IGNiMTQxNDI3Njk2Li4zOTM4ODk2ODUzNyAxMDA2NDQKLS0tIGEv Z2RiL3JzNjAwMC1haXgtbmF0LmMKKysrIGIvZ2RiL3JzNjAwMC1haXgtbmF0 LmMKQEAgLTkxLDEwICs5MSwxMyBAQCBjbGFzcyByczYwMDBfbmF0X3Rhcmdl dCBmaW5hbCA6IHB1YmxpYyBpbmZfcHRyYWNlX3RhcmdldAogCiAgIHB0aWRf dCB3YWl0IChwdGlkX3QsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqLCB0 YXJnZXRfd2FpdF9mbGFncykgb3ZlcnJpZGU7CiAKKyAgLyogRm9yayBkZXRl Y3Rpb24gcmVsYXRlZCBmdW5jdGlvbnMsIEZvciBhZGRpbmcgbXVsdGkgcHJv Y2VzcyBkZWJ1Z2dpbmcKKyAgICAgc3VwcG9ydC4gICovCisgIHZvaWQgZm9s bG93X2ZvcmsgKGluZmVyaW9yICosIHB0aWRfdCwgdGFyZ2V0X3dhaXRraW5k LCBib29sLCBib29sKSBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogCi0gIHZv aWQgcG9zdF9zdGFydHVwX2luZmVyaW9yIChwdGlkX3QgcHRpZCkgb3ZlcnJp ZGUKLSAgeyAvKiBOb3RoaW5nLiAgKi8gfQorICB2b2lkIHBvc3Rfc3RhcnR1 cF9pbmZlcmlvciAocHRpZF90IHB0aWQpIG92ZXJyaWRlOwogCiBwcml2YXRl OgogICBlbnVtIHRhcmdldF94ZmVyX3N0YXR1cwpAQCAtMTA3LDYgKzExMCw4 MyBAQCBjbGFzcyByczYwMDBfbmF0X3RhcmdldCBmaW5hbCA6IHB1YmxpYyBp bmZfcHRyYWNlX3RhcmdldAogCiBzdGF0aWMgcnM2MDAwX25hdF90YXJnZXQg dGhlX3JzNjAwMF9uYXRfdGFyZ2V0OwogCisvKiBUaGUgYmVsb3cgZGVjbGFy YXRpb24gaXMgdG8gdHJhY2sgbnVtYmVyIG9mIHRpbWVzLCBwYXJlbnQgaGFz CisgICByZXBvcnRlZCBmb3JrIGV2ZW50IGJlZm9yZSBpdHMgY2hpbGRyZW4u ICAqLworCitzdGF0aWMgc3RkOjpsaXN0PHBpZF90PiBhaXhfcGVuZGluZ19w YXJlbnQ7CisKKy8qIFRoZSBiZWxvdyBkZWNsYXJhdGlvbiBpcyBmb3IgYSBj aGlsZCBwcm9jZXNzIGV2ZW50IHRoYXQKKyAgIGlzIHJlcG9ydGVkIGJlZm9y ZSBpdHMgY29ycmVzcG9uZGluZyBwYXJlbnQgcHJvY2VzcyBpbgorICAgdGhl IGV2ZW50IG9mIGEgZm9yayAoKS4gICovCisKK3N0YXRpYyBzdGQ6Omxpc3Q8 cGlkX3Q+IGFpeF9wZW5kaW5nX2NoaWxkcmVuOworCitzdGF0aWMgdm9pZAor YWl4X3JlbWVtYmVyX2NoaWxkIChwaWRfdCBwaWQpCit7CisgIGFpeF9wZW5k aW5nX2NoaWxkcmVuLnB1c2hfZnJvbnQgKHBpZCk7Cit9CisKK3N0YXRpYyB2 b2lkCithaXhfcmVtZW1iZXJfcGFyZW50IChwaWRfdCBwaWQpCit7CisgIGFp eF9wZW5kaW5nX3BhcmVudC5wdXNoX2Zyb250IChwaWQpOworfQorCisvKiBJ biB0aGUgYmVsb3cgZnVuY3Rpb24gd2UgY2hlY2sgaWYgdGhlcmUgd2FzIGFu eSBjaGlsZAorICAgcHJvY2VzcyBwZW5kaW5nLiAgSWYgaXQgZXhpc3RzIHdl IHJldHVybiBpdCBmcm9tIHRoZQorICAgbGlzdCwgb3RoZXJ3aXNlIHdlIHJl dHVybiBhIG51bGwuICAqLworCitzdGF0aWMgcGlkX3QKK2FpeF9pc19jaGls ZF9wZW5kaW5nICgpCit7CisgIGF1dG8gaXQgPSBhaXhfcGVuZGluZ19jaGls ZHJlbi5iZWdpbiAoKTsKKyAgaWYgKGl0ICE9IGFpeF9wZW5kaW5nX2NoaWxk cmVuLmVuZCAoKSkKKyAgeworICAgIGludCBjaGlsZCA9ICppdDsKKyAgICBh aXhfcGVuZGluZ19jaGlsZHJlbi5lcmFzZSAoaXQpOworICAgIHJldHVybiBj aGlsZDsKKyAgfQorICByZXR1cm4gMDsKK30KKworLyogSW4gdGhlIGJlbG93 IGZ1bmN0aW9uIHdlIGNoZWNrIGlmIHRoZXJlIHdhcyBhbnkgcGFyZW50IAor ICAgcHJvY2VzcyBwZW5kaW5nLiAgSWYgaXQgZXhpc3RzIHdlIHJldHVybiBp dCBmcm9tIHRoZQorICAgbGlzdCwgb3RoZXJ3aXNlIHdlIHJldHVybiBhIG51 bGwuICAqLworCitzdGF0aWMgcGlkX3QKK2FpeF9pc19wYXJlbnRfcGVuZGlu ZyAoKQoreworICBhdXRvIGl0ID0gYWl4X3BlbmRpbmdfcGFyZW50LmJlZ2lu ICgpOworICBpZiAoaXQgIT0gYWl4X3BlbmRpbmdfcGFyZW50LmVuZCAoKSkK KyAgeworICAgIGludCBwYXJlbnQgPSAqaXQ7CisgICAgYWl4X3BlbmRpbmdf cGFyZW50LmVyYXNlIChpdCk7CisgICAgcmV0dXJuIHBhcmVudDsKKyAgfQor ICByZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYg dGhlcmUgd2FzIGEgZm9yayAoKSBldmVudC4gICovCisKK3N0YXRpYyBib29s CitkaWRfYWl4X2luZmVyaW9yX2ZvcmsgKGludCBzdGF0dXMpCit7CisgIC8q IElmIG11bHRpLXByb2Nlc3MgZGVidWcgbW9kZSBpcyBlbmFibGVkLCB0aGUg c3RhdHVzCisgICAgIGxvY2F0aW9uIGlzIHNldCB0byBXX1NGV1RFRC4gICov CisKKyAgc3RhdHVzID0gc3RhdHVzICYgMHhmZjsKKworICAvKiBFbGltaW5h dGUgdGhlIGxhc3QgZmV3IGJpdHMuIElmIHRoZSBXX1NGV1RFRCBpcyBzZXQK KyAgICAgd2hpY2ggaXMgZXF1YWwgdG8gMHg3ZSwgaXQgaXMgYSBmb3JrIGV2 ZW50IG90aGVyd2lzZQorICAgICBpdCBpcyBub3QuICAqLworCisgIGlmIChz dGF0dXMgXiBXX1NGV1RFRCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGVsc2UK KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogLyogR2l2ZW4gUkVHTk8sIGEgZ2Ri IHJlZ2lzdGVyIG51bWJlciwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nCiAg ICBudW1iZXIgc3VpdGFibGUgZm9yIHVzZSBhcyBhIHB0cmFjZSgpIHBhcmFt ZXRlci4gIFJldHVybiAtMSBpZgogICAgdGhlcmUncyBubyBzdWl0YWJsZSBt YXBwaW5nLiAgQWxzbywgc2V0IHRoZSBpbnQgcG9pbnRlZCB0byBieQpAQCAt MTg3LDYgKzI2Nyw0NyBAQCByczYwMDBfcHRyYWNlNjQgKGludCByZXEsIGlu dCBpZCwgbG9uZyBsb25nIGFkZHIsIGludCBkYXRhLCB2b2lkICpidWYpCiAg IHJldHVybiByZXQ7CiB9CiAKK3ZvaWQgcnM2MDAwX25hdF90YXJnZXQ6OnBv c3Rfc3RhcnR1cF9pbmZlcmlvciAocHRpZF90IHB0aWQpCit7CisKKyAgLyog SW4gQUlYIHRvIHR1cm4gb24gbXVsdGkgcHJvY2VzcyBkZWJ1Z2dpbmcgaW4g cHRyYWNlCisgICAgIFBUX01VTFRJIGlzIHRoZSBvcHRpb24gdG8gYmUgcGFz c2VkLAorICAgICB3aXRoIHRoZSBwcm9jZXNzIElEIHdoaWNoIGNhbiBmb3Jr ICgpIGFuZAorICAgICB0aGUgZGF0YSBwYXJhbWV0ZXIgW2ZvdXJ0aCBwYXJh bWV0ZXJdIG11c3QgYmUgMS4gICovCisKKyAgaWYgKCFBUkNINjQgKCkpCisg ICAgcnM2MDAwX3B0cmFjZTMyIChQVF9NVUxUSSwgcHRpZC5waWQoKSwgMCwg MSwgMCk7CisgIGVsc2UKKyAgICByczYwMDBfcHRyYWNlNjQgKFBUX01VTFRJ LCBwdGlkLnBpZCgpLCAwLCAxLCAwKTsKK30KKwordm9pZAorcnM2MDAwX25h dF90YXJnZXQ6OmZvbGxvd19mb3JrIChpbmZlcmlvciAqY2hpbGRfaW5mLCBw dGlkX3QgY2hpbGRfcHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X3dhaXRraW5kIGZvcmtfa2luZCwgYm9vbCBmb2xsb3dfY2hpbGQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGRldGFjaF9mb3JrKQoreworCisgIC8qIE9uY2Ug dGhlIGZvcmsgZXZlbnQgaXMgZGV0ZWN0ZWQgdGhlIGluZnJ1bi5jIGNvZGUK KyAgICAgY2FsbHMgdGhlIHRhcmdldF9mb2xsb3dfZm9yayB0byB0YWtlIGNh cmUgb2YKKyAgICAgZm9sbG93IGNoaWxkIGFuZCBkZXRhY2ggdGhlIGNoaWxk IGFjdGl2aXR5IHdoaWNoIGlzCisgICAgIGRvbmUgdXNpbmcgdGhlIGZ1bmN0 aW9uIGJlbG93LiAgKi8KKworICBpbmZfcHRyYWNlX3RhcmdldDo6Zm9sbG93 X2ZvcmsgKGNoaWxkX2luZiwgY2hpbGRfcHRpZCwgZm9ya19raW5kLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19j aGlsZCwgZGV0YWNoX2ZvcmspOworCisgIC8qIElmIHdlIGRldGFjaCBmb3Jr IGFuZCBmb2xsb3cgY2hpbGQgd2UgZG8gbm90IHdhbnQgdGhlIGNoaWxkCisg ICAgIHByb2Nlc3MgdG8gZ2VuZWF0ZSBldmVudHMgdGhhdCBwdHJhY2UgY2Fu IHRyYWNlLiAgSGVuY2Ugd2UKKyAgICAgZGV0YWNoIGl0LiAgKi8KKworICBp ZiAoZGV0YWNoX2ZvcmsgJiYgIWZvbGxvd19jaGlsZCkKKyAgeworICAgIGlm IChBUkNINjQgKCkpCisgICAgICByczYwMDBfcHRyYWNlNjQgKFBUX0RFVEFD SCwgY2hpbGRfcHRpZC5waWQgKCksIDAsIDAsIDApOworICAgIGVsc2UKKyAg ICAgIHJzNjAwMF9wdHJhY2UzMiAoUFRfREVUQUNILCBjaGlsZF9wdGlkLnBp ZCAoKSwgMCwgMCwgMCk7CisgIH0KK30KKwogLyogRmV0Y2ggcmVnaXN0ZXIg UkVHTk8gZnJvbSB0aGUgaW5mZXJpb3IuICAqLwogCiBzdGF0aWMgdm9pZApA QCAtNTM4LDkgKzY1OSw2MyBAQCByczYwMDBfbmF0X3RhcmdldDo6d2FpdCAo cHRpZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqb3Vyc3Rh dHVzLAogICAvKiBzdG9wIGFmdGVyIGxvYWQiIHN0YXR1cy4gICovCiAgIGlm IChzdGF0dXMgPT0gMHg1N2MpCiAgICAgb3Vyc3RhdHVzLT5zZXRfbG9hZGVk ICgpOwotICAvKiBzaWduYWwgMC4gIEkgaGF2ZSBubyBpZGVhIHdoeSB3YWl0 KDIpIHJldHVybnMgd2l0aCB0aGlzIHN0YXR1cyB3b3JkLiAgKi8KLSAgZWxz ZSBpZiAoc3RhdHVzID09IDB4N2YpCisgIC8qIDB4N2YgaXMgc2lnbmFsIDAu ICAqLworICAvKiAweDE3ZiBhbmQgMHgxMzdmIGluIGhleGFkZWNpbWFsIGFy ZSBzdGF0dXMgcmV0dXJuZWQgaWYKKyAgICAgaWYgd2UgZm9sbG93IHBhcmVu dCwKKyAgICAgYSBzd2l0Y2ggaXMgbWFkZSB0byBhIGNoaWxkIHBvc3QgcGFy ZW50IGV4ZWN1dGlvbgorICAgICBhbmQgY2hpbGQgY29udGludWVzIGl0cyBl eGVjdXRpb24gW3VzZXIgc3dpdGNoZXMgdG8gY2hpbGQgYW5kCisgICAgIHBy ZXNzZXMgY29udGludWVdLiAgKi8KKyAgZWxzZSBpZiAoc3RhdHVzID09IDB4 N2YgfHwgc3RhdHVzID09IDB4MTdmIHx8IHN0YXR1cyA9PSAweDEzN2YpCiAg ICAgb3Vyc3RhdHVzLT5zZXRfc3B1cmlvdXMgKCk7CisgIC8qIENoZWNrIGZv ciBhIGZvcmsgKCkgZXZlbnQuICAqLworICBlbHNlIGlmIChkaWRfYWl4X2lu ZmVyaW9yX2ZvcmsgKHN0YXR1cykpCisgIHsKKyAgICAvKiBDaGVja2luZyB3 aGV0aGVyIGl0IGlzIGEgcGFyZW50IG9yIGEgY2hpbGQgZXZlbnQuICAqLwor CisgICAgaWYgKGZpbmRfaW5mZXJpb3JfcGlkICh0aGlzLCBwaWQpID09IG51 bGxwdHIpCisgICAgICBhaXhfcmVtZW1iZXJfY2hpbGQgKHBpZCk7CisgICAg ZWxzZQorICAgICAgYWl4X3JlbWVtYmVyX3BhcmVudCAocGlkKTsKKworICAg IHdoaWxlICgxKQorICAgIHsKKyAgICAgIHBpZCA9IHdhaXRwaWQgKC0xLCAm c3RhdHVzLCAwKTsKKyAgICAgIGdkYl9hc3NlcnQgKGRpZF9haXhfaW5mZXJp b3JfZm9yayAoc3RhdHVzKSA9PSB0cnVlKTsKKyAgICAgIAorICAgICAgLyog SWYgdGhlIGV2ZW50IGlzIGEgY2hpbGQgd2UgY2hlY2sgaWYgdGhlcmUgd2Fz IGEgcGFyZW50CisgICAgICAgICBldmVudCByZWNvcmRlZCBiZWZvcmUuICBJ ZiB5ZXMgd2UgZ290IHRoZSBwYXJlbnQgY2hpbGQKKyAgICAgICAgIHJlbGF0 aW9uc2hpcC4gIElmIG5vdCB3ZSBwdXNoIHRoaXMgY2hpbGQgYW5kIHdhaXQg Zm9yIAorICAgICAgICAgdGhlIG5leHQgZm9yayAoKSBldmVudC4gICovCisg CisgICAgICBpZiAoZmluZF9pbmZlcmlvcl9waWQgKHRoaXMsIHBpZCkgPT0g bnVsbHB0cikKKyAgICAgIHsKKyAgICAgICAgcGlkX3QgcGFyZW50X3BpZCA9 IGFpeF9pc19wYXJlbnRfcGVuZGluZyAoKTsKKyAgICAgICAgaWYgKHBhcmVu dF9waWQgPiAwKQorICAgICAgICB7CisgICAgICAgICAgb3Vyc3RhdHVzLT5z ZXRfZm9ya2VkIChwdGlkX3QgKHBpZCkpOworICAgICAgICAgIHJldHVybiBw dGlkX3QgKHBhcmVudF9waWQpOworICAgICAgICB9CisgICAgICAgIGFpeF9y ZW1lbWJlcl9jaGlsZCAocGlkKTsKKyAgICAgIH0KKworICAgICAgLyogSWYg dGhlIGV2ZW50IGlzIGEgcGFyZW50IHdlIGNoZWNrIGlmIHRoZXJlIHdhcyBh IGNoaWxkCisgICAgICAgICBldmVudCByZWNvcmRlZCBiZWZvcmUuICBJZiB5 ZXMgd2UgZ290IHRoZSBwYXJlbnQgY2hpbGQKKyAgICAgICAgIHJlbGF0aW9u c2hpcC4gIElmIG5vdCB3ZSBwdXNoIHRoaXMgcGFyZW50IGFuZCB3YWl0IGZv ciAKKyAgICAgICAgIHRoZSBuZXh0IGZvcmsgKCkgZXZlbnQuICAqLworCisg ICAgICBlbHNlCisgICAgICB7CisgICAgICAgIHBpZF90IGNoaWxkX3BpZCA9 IGFpeF9pc19jaGlsZF9wZW5kaW5nICgpOworICAgICAgICBpZiAoY2hpbGRf cGlkID4gMCkKKyAgICAgICAgeworICAgICAgICAgIG91cnN0YXR1cy0+c2V0 X2ZvcmtlZCAocHRpZF90IChjaGlsZF9waWQpKTsKKyAgICAgICAgICByZXR1 cm4gcHRpZF90IChwaWQpOworICAgICAgICB9CisgICAgICAgIGFpeF9yZW1l bWJlcl9wYXJlbnQgKHBpZCk7CisgICAgICB9IAorICAgIH0KKyAgfQorCiAg IC8qIEEgbm9ybWFsIHdhaXRzdGF0dXMuICBMZXQgdGhlIHVzdWFsIG1hY3Jv cyBkZWFsIHdpdGggaXQuICAqLwogICBlbHNlCiAgICAgKm91cnN0YXR1cyA9 IGhvc3Rfc3RhdHVzX3RvX3dhaXRzdGF0dXMgKHN0YXR1cyk7Ci0tIAoyLjMx LjEKCg== --_004_CH2PR15MB35444CA38B01CE6FF5803DD8D62B9CH2PR15MB3544namp_--