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 C7C53385801C for ; Thu, 4 Aug 2022 15:15:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C7C53385801C 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 274FCLFo007668; Thu, 4 Aug 2022 15:15:15 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3hrghtr434-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 04 Aug 2022 15:15:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LgjSZkJjuTVRLEzDMKwNMEjvisxwa3BWVeuNOjLeqbJ3mvefDZnukRyDbsSM6c8qtdWgiKhoc1MqvXXBnUAKSSuR34n6o5Xyq6XeBGN/1A2ZQQXYxJKVtIRf7DfE592XnvNnl2Ozbin4oOm/zva5Z6VdQlk34ElZbQHDTG63p803Bkz8jqrkRyQrSVyG98RuzIKm458kTNKnnkQNUER30CeSc//WsjyPqWamIHlwfvq7uDcUx5ybxbG3Z1uZFBeXWteCn/2CuOIKU/eF5nZePDJ0/I4N7J/yMzBQO/oiOHD5/C/lqIpPNoIuC1FOZh4LU9H4CsH+GmilIcl1HY+18Q== 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=yB6bP6t3MakxFX5ab19oJrp4NYhA/UOpDuuMY8KHqTE=; b=b4hkEYK9SM4H7M6NcwQFAV9PWuKIp8V94I99YzcCuOwno0Ml0wCYTyzgeBhROLkj0lKSRp/mdb2pOdQTzCRwemHuh1IB9aguGAZUfPyAkPHWye3XqfcPxiyCVvSWTqNILQVsRhzDeP/dqFFx1pqC1+yNEgTvNtwl2XC78I+MxlASr/yu5HdDjdT5p9dWPQxjzF0E86lYWIwsIi5vEkdN+3AUs/FEZ3s4ZcFKIRx9Wx8sLS7Tvw+HS39fGliL1eUSRaJ6yArLmyr9Op5WIwkrMf+6pwPqzDkZfHWGhyP3a+yA5JOVMdgqJssJV3sX2tfmeKGU6YHKHSd1yKJjAMPqiQ== 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 CO6PR15MB4164.namprd15.prod.outlook.com (2603:10b6:5:342::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 15:15:12 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::659c:4276:d40e:7bf]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::659c:4276:d40e:7bf%5]) with mapi id 15.20.5504.014; Thu, 4 Aug 2022 15:15:12 +0000 From: Aditya Kamath1 To: Ulrich Weigand , "simark@simark.ca" , "simon.marchi@efficios.com" , Sangamesh Mallayya , "gdb-patches@sourceware.org" Subject: Re: [PATCH] Fix-for-multiple-thread-detection-in-AIX.patch Thread-Topic: [PATCH] Fix-for-multiple-thread-detection-in-AIX.patch Thread-Index: AQHYp1VKRT7HFPvw3UOYsybZEqf6Ca2e2A/K Date: Thu, 4 Aug 2022 15:15:12 +0000 Message-ID: References: <49119016e80e58fafea0248887148aca3d1aef8c.camel@de.ibm.com> <841f0915-13a8-bbb3-07e6-54b5ff4293f1@simark.ca> <0ce0b76afc5dc40c6837d3ee8332c0630fb397a4.camel@de.ibm.com> In-Reply-To: <0ce0b76afc5dc40c6837d3ee8332c0630fb397a4.camel@de.ibm.com> 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-office365-filtering-correlation-id: c29eafac-6353-43e9-f327-08da762c2092 x-ms-traffictypediagnostic: CO6PR15MB4164:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F6z2eONdfOUrjwe2lzdD49EMw4pbF1axytPeUora9Y9WvCUrdmdbGZtaMWV7qELMEQ8KJlcn7Y7i9CBJ5m8jJ42waNaEH1tAwhgAzbpN2NKrAJ7NM5q4ofgt1JqufEIlFKsP0Xmus0P5f0jcLW7T562uyr9LDFpvvqU6DE3MZaVoblWWo+PL/5gN9AaykPiDNrC0MkS6QaSZFZnCn/Lwd6GnnDe37V2ir/LOt4QhKqXSgI6/8i/3EwzoHi73nlRJ/Vu9xqj4KlJqcZHqdbp1eUqAgCn4tF6Ta1CRuNSSUqNM8+XUa6HzYQgGMeZDWueOW6Tt0TVZ+lu8E9orqMZV70eNk7W2n9X+EKVEHf8AAGtYljMIAcjTSkWHMbaTnMoi9Cu7A8Xl5hvsTHX2AdQ9mmqxsmg5siwN2rfCnqIti4BNzxvCqGtkpbGA89xwi/F3OTq7F1Be6ru8G3lEbZ9rsdmI78UUUVE615xep4LaFvC5lIEPoDMSsvPqvXHmYY2dr6szUuepbwnVaTmEJUYWWmoVqVqLeNZTCfP+d4ixBd2mAaNOJsFVYTrsEZoLOhLYnWPRlgA8HqWF1Xp4smNnhSK/AS4TbiCrel44KZ1lh+pB7XHD61Pg6s4XmzwvhQcF/ffU5ADwd/C2qhJzYXEIEm+DeYjUOwplpprhEdilAsFA4ZwkgMi6XCusH/iNyE4i7eQ9cEFimtqJq/VwI/v41mr3DGNUyJUtLLBM7BZrIPZ82hu4Iwudm1FYijgedmNHvuDNEbefdrYEYGRTtP02+RVfhVgvcwmlDCPSyt/9LapcHxIBMfw7PXgDHM/cBqn0 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:(13230016)(39860400002)(396003)(136003)(376002)(366004)(346002)(8936002)(52536014)(110136005)(316002)(66946007)(86362001)(5660300002)(8676002)(55016003)(66556008)(66476007)(76116006)(64756008)(66446008)(91956017)(2906002)(33656002)(30864003)(186003)(66574015)(19627405001)(83380400001)(122000001)(38100700002)(99936003)(6506007)(38070700005)(478600001)(9686003)(71200400001)(53546011)(41300700001)(26005)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?6b3ucr1aoyFzSoNHhhxmbp0KXZLEHSImP6ObcOiLL+MKA80VYporhPPEYa?= =?iso-8859-1?Q?f7TKaH+9y0P3uyPcHSY3c7bWU8JD2E7enbL3hKSMvygBEZAxyXl04ezlTu?= =?iso-8859-1?Q?QPXvqBLp84Elb8QLMH59pyO+Oteqvb9+3XHUIRW4FDRmvBs2ootiy7Hxcn?= =?iso-8859-1?Q?Ooa/ng5HnNPw7aLKnyou4ckQcqdD8liqJ+WpohCFKmYL5AcF1pXs1DwZ0N?= =?iso-8859-1?Q?z+FU3UtpY25NmwalgfmiD0wn324iAn2/M98D5o0ZAK1XzElqDj5Enb5TpP?= =?iso-8859-1?Q?IoewQ5oZLF+0g2AHOdnuMnTb0n2dhMrfju/z3uVtqmyXeNY5gHiT2ePN/6?= =?iso-8859-1?Q?+kof5WEh73xTia0jXBLVQPYoAbVQ72itMMnQdt3pXlKc/nLKfwWaJzsAgm?= =?iso-8859-1?Q?F3MVbFKF3961WK/4+ZXSjfOnvbdT/whtp3F4diEMq85izUTRtHIVeZr+yq?= =?iso-8859-1?Q?EOHMWVfm4WLPrwEplyOZVZBtlIdHG2cXbbZCILi9p5yhRSeFaLXVVgUt9F?= =?iso-8859-1?Q?pCG0Qo7hu7mG7tzX5qtMSIvIjMnY10MYJlaTABCzKjeqFMtseDzyfIU8pU?= =?iso-8859-1?Q?gzIrVHM9qsgl2kF+1nvBZ0k9WdJF1s1qREDBCCSdWr6Fywx3U5UUE9dqGo?= =?iso-8859-1?Q?vuVW8emNRkvOtgbKQ3zQL3u/MQf8oRId+cVRjHqP9P7Y95LSVPg76OV14c?= =?iso-8859-1?Q?MdvPicPXdj3Wgv2dtl2PW4lo7o4EKMsRq+xN+I1b7llNSSKr8vnvfYZ0od?= =?iso-8859-1?Q?sapGxqoL0kPWi5hCd8nEuLuvTHDzSnnMySWEBe1RQDWJAiIzu1hZgfWqbf?= =?iso-8859-1?Q?/soj954J6kEgbdaP6qL7MGbdMHN3jYSKbbQ2gFY6YKWJ4u4DX0K3zvNf1k?= =?iso-8859-1?Q?lakSzXWq9bIjMyHIAPpYF3jChUEQ9N3vO5IbeVIpGNeC9KpLaQarInLjHw?= =?iso-8859-1?Q?+DzVk95pPQGON8OHI/oTPUrbTnDgw3pcPTgs5H9/qJ/Kxq69FUG88gdFDB?= =?iso-8859-1?Q?RXt8ptXLKjJRxZf/OONyKfn+7ISClG9uZyv7OAIDWP6yRpJGeuriJJ+/F+?= =?iso-8859-1?Q?HUs33kZ46ESuSbQfXSYH43fk8SU/kHtxx5hGxTYvxHDg7iQ06YW5zHn9VH?= =?iso-8859-1?Q?YywjnVKcxyQ8J3s5GTz6rwpx9tO2WXEMLgK5FBUZHMEdeR3GcS+MUO/Caw?= =?iso-8859-1?Q?KtSTDc1pt93RF8DEy4WJm9mPanlclZrpjNijZX65rs/vTNVBpk9x1nfNi4?= =?iso-8859-1?Q?FfNMzliIfr3m/T+8eHQoRM+HKzd0WxdFXA45v5+njG7BzZLz+Mt7pZxw94?= =?iso-8859-1?Q?Vm6V6GOu6PqdSY1JSYQXHjSe6Yv1Ik40AKebEzWqNU26eZlKF5dySnwrU3?= =?iso-8859-1?Q?OIVW4LkNgIRtpj+LG/dluHVcZ5dvK8ssMBXuJpOLrdaVvWPDp+m9P8uqpw?= =?iso-8859-1?Q?PFR9iNlm1bP+ZpCGbtM61XFisBsnZ4ez9OO5iJH6UaRXUCF0rOLaw/D23J?= =?iso-8859-1?Q?aZnCOQaJiJOGjSvT7CMsXe1W6loppOivpLJt1babxYlLEt15F76xCDYtXM?= =?iso-8859-1?Q?rQcqCXC8G+rdc/72fXdpYxGqYxrSDsKburYtEsVWop+yxyxZleiAMCY9+Y?= =?iso-8859-1?Q?TsNytdDcIP73WabPLwDzsZIW9JJrnU+V7R?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB354445D316B3AF2874998AD6D69F9CH2PR15MB3544namp_" 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: c29eafac-6353-43e9-f327-08da762c2092 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2022 15:15:12.2861 (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: whJCzEyEvX3NrZtQU9IXbdhQNIbpsMYJL6kI+rImuXGDKXnX3E/dbw8yiPpTwPlih7BHc70Ccym0Qy9dE+PL2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR15MB4164 X-Proofpoint-ORIG-GUID: 80A9QfYmhSdM-63wx7NgkxApbQsYWT-g X-Proofpoint-GUID: 80A9QfYmhSdM-63wx7NgkxApbQsYWT-g 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.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-04_03,2022-08-04_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 mlxscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 bulkscore=0 mlxlogscore=999 clxscore=1015 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2206140000 definitions=main-2208040066 X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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: Thu, 04 Aug 2022 15:15:24 -0000 --_004_CH2PR15MB354445D316B3AF2874998AD6D69F9CH2PR15MB3544namp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Simon and Ulrich, Thank you for the suggestions. Please find attached the patch. [ See 0001-Fix-for-multiple-thread-detectio= n-in-AIX.patch] I have moved the scope + switch_to_current_thread to pdc_read_data() where = the dependency is needed in the call-backs as suggested by Ulrich. I also e= liminated PD_USER variable as it is no longer needed. As far as the user_cu= rrent_pid !=3D 0 condition is concerned, we need this check during initiali= sation during the birth of the first inferior. We passed a parameter inferi= or_ptid.pid () in pd_enable () which is 0 at that time. Since we do not need PD_USER and having pthdb_user_t user as the name might= be look vague to someone trying to understand, I have changed it to user_c= urrent_pid. I think this solves the problem. Let me know what you guys think. If it loo= ks good we can push this so that folks using AIX can now see multi thread d= ebugging. Have a nice day. Thanks and regards, Aditya. ________________________________ From: Ulrich Weigand Sent: 03 August 2022 21:52 To: simark@simark.ca ; Aditya Kamath1 ; simon.marchi@efficios.com ; Sangamesh Mal= layya ; gdb-patches@sourceware.org Subject: Re: [PATCH] Fix-for-multiple-thread-detection-in-AIX.patch Hi Aditya, thanks for the update. I'd like to still understand a bit better exactly wh= ere the current thread is required to be set, so we can keep those scopes a= s small as possible. Is is really all of sync_threadlists, or is it only th= e first part, where the pthdb_ calls are made? If so, we should move the sc= ope to cover only that part. Note that another, even better approach would be to move those scopes *into= the callback routines* that actually need it. That would require a means t= o pass information into those callbacks - maybe we can use pthdb_user_t for= this purpose, e.g. by passing the PID there instead of always just a const= ant PD_USER? This would be equivalent to what's done on Linux - you can che= ck the callbacks used for the Linux thread library in proc-service.c. Note = that only ps_xfer_memory and ps_pglobal_lookup set up scopes there. Mit freundlichen Gruessen / Best Regards Ulrich Weigand -- Dr. Ulrich Weigand | Phone: +49-7031/16-3727 Distinguished Engineer, Open source compilers and toolchain IBM Deutschland Research & Development GmbH Vors. des Aufsichtsrats: Gregor Pillen | Gesch=E4ftsf=FChrung: David Fall= er Sitz d. Ges.: B=F6blingen | Registergericht: Amtsgericht Stuttgart, HRB 2= 43294 -----Original Message----- From: Aditya Kamath1 > To: Simon Marchi >, Ulrich Weigand >, Sangamesh Mallayya >,= simon.marchi@efficios.com >, gdb-patches@sourcewa= re.org > Subject: Re: [EXTERNAL] Re: [PATCH] Fix-for-multiple-thread-detection-in-AI= X.patch Date: Fri, 29 Jul 2022 09:23:55 +0000 Hi all, I thank you for the feedback that was given. It was a nice insight. Please find attached the new patch. [See Fix-for-multiple-thread-detection-= in-AIX.patch ] However, there are a few things that we had to look in further to what was = suggested. Here are my explanations to what was suggested. > I still think the proposed fix isn't really ideal. Can you instead > try to *temporarily* (i.e. using a scoped_restore) set up inferior_ptid > in pd_activate() before calling pthdb_session_init(), with a comment > explaining that this is needed for the callbacks? This is a nice idea Ulrich and Simon. However, let me take a case of a prog= ram creating 2 threads plus OfCourse having a main thread. Let's say the pr= ogram creates the first thread. This solution works fantastic. So, what is the problem with it?? We have our pd_active set to 1 in pd_act= ivate(). So, the next time we get into the wait() of aix-thread.c on an eve= nt of a new thread, what happens is since pthread debug library is initiali= sed we need not get into pd_activate() again to initialise. Therefore, this= condition : if (!pd_active && status->kind () =3D=3D TARGET_WAITKIND_STOPPED && status->sig () =3D=3D GDB_SIGNAL_TRAP) was made... We directly go to the pd_update().. Since the sync_threadlists(= ) also have pthread debug library functions and our current thread is also = null, we end up syncing threadlists with null thread which means our debug= ger will not reflect the new threads at all or if it does we will get an as= sertion saying "Assertion `ecs->event_thread->control.trap_expected' failed= " simply because only the thread which is allowed to step should create a t= rap and we on a creation of new thread said to the gdb core that null threa= d is the one who raised the event of new thread creation and hence the trap= .. So, what can be the solution?? It is great if we create a scope and tempora= rily switch our thread just before you pthdb_session init() in pd_activate(= ) whicj takes care of session initialisation and just before the sync_threa= dlists() in pd_activate() post which sync threadlists() can give us the rig= ht thread who caused an event to the gdb core .. Kindly see the patch for the same with comments and inferior_ptid.pid () sp= ace correction is also made which I needed to as per Simon. Let me know what you think, if not let's push this so that AIX folks can de= bug with multiple threads. ---------------------------------------------------------------------------= ------------------- >>To avoid this kind of problems, you can temporarily >>switch thread (using scoped_restore_current_thread + switch_to_thread), >>which will set all the current stuff mentioned above. But sometimes >>this isn't possible, especially in thw wait method, because there isn't >>always a thread_info for the ptid you are handling yet, so you can't >>switch to it. Since you all are more experienced than me, I am sure the future issues and= solutions will be brightly more visible to all of you than me and I would = love to learn that.. Having said that let me assume you might be thinking o= f a fork() event where in case we return the child process ID and we switch= _to_thread(current_target, child_ptid) we might get an assertion saying inf= ->thread does not exist and rightly so.. That is where the APIs or function= s like ourstatus->set_forked(child_ptid) come in picture where we can pass = a new process info and then return a parent process ptid who has a thread f= rom beneath->wait to aix_thread:wait() and that way we won't face this issu= e of having an inferior with no thread when we use switch_to_thread(current= _target,ptid) in AIX for the time being at least.. Hopefully we are thinking in the same terms and the solution for multiple t= hreads is fair. Have a nice day ahead. Thank you, Regards, Aditya. ________________________________ From: Simon Marchi Sent: 25 July 2022 21:00 To: Ulrich Weigand ; Sangamesh Mallayya ; Aditya Kamath1 ; simon.marchi= @efficios.com ; gdb-patches@sourceware.org Subject: [EXTERNAL] Re: [PATCH] Fix-for-multiple-thread-detection-in-AIX.pa= tch On 2022-07-25 08:21, Ulrich Weigand wrote: > > Aditya Kamath1 wrote: > >> The cause of the bug :- Since, for the GDB core we are >> switch_to_no_thread() i.e. we do not have a thread till we return the >> pid from the wait() there is no thread. So, when a call is made from >> pd_activate() in wait() of aix-thread.c, to pthdb_session_init() we are >> going to recieve PTHDB_NOT_THREADED. > > Thanks for the explanation. I wasn't aware the use of > inferior_ptid happens in some of callback routines used > by the pthdb_session_init() library routine. Thanks, me neither, but it makes sense. > I still think the proposed fix isn't really ideal. Can you instead > try to *temporarily* (i.e. using a scoped_restore) set up inferior_ptid > in pd_activate() before calling pthdb_session_init(), with a comment > explaining that this is needed for the callbacks? That sounds like a good idea, this way, from the point of view of the caller of pd_activate, pd_activate does not care about global state. That's how we can do baby steps towards relying less on global state implicitly. The next step could be to try to make each individual callback switch to the right global context, based on what they need. You just need to be careful, some parts of GDB expect inferior_ptid, the current thread, the current inferior and the current program space to be sync'ed. If you just set inferior_ptid, you need to make sure to only call functions that use inferior_ptid, not the other current stuff. There is not practical way to know this, you have to carefully inspect what is called. To avoid this kind of problems, you can temporarily switch thread (using scoped_restore_current_thread + switch_to_thread), which will set all the current stuff mentioned above. But sometimes this isn't possible, especially in thw wait method, because there isn't always a thread_info for the ptid you are handling yet, so you can't switch to it. Given the AIX target only supports one inferior for now, the current inferior and program space should be correct. But to support multi-inferior, it will be important to keep that in mind. You might have to switch to the right inferior in addition to setting inferior_ptid in pd_acticate. This hunk in the patch: diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index 4c9195a7f12..91466a17647 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -976,7 +976,7 @@ pd_enable (void) /* If we're debugging a core file or an attached inferior, the pthread library may already have been initialized, so try to activate thread debugging. */ - pd_activate (1); + pd_activate (inferior_ptid.pid()); } looks right to me (except the missing space before the parenthesis). It looks like an oversight in my "gdb: fix {rs6000_nat_target,aix_thread_target}::wait to not use inferior_ptid" patch, I forgot to update that call to pd_activate. Note that the old parameter to pd_activate was SET_INFPID, and if set, pd_update would change the current thread to reflect the thread ptid, if thread debugging was enabled. The current code no longer does that. If that was important, we can re-introduce it here: make pd_enable switch to the thread with the ptid returned by pd_activate. Simon --_004_CH2PR15MB354445D316B3AF2874998AD6D69F9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Fix-for-multiple-thread-detection-in-AIX.patch" Content-Description: 0001-Fix-for-multiple-thread-detection-in-AIX.patch Content-Disposition: attachment; filename="0001-Fix-for-multiple-thread-detection-in-AIX.patch"; size=8354; creation-date="Thu, 04 Aug 2022 15:10:40 GMT"; modification-date="Thu, 04 Aug 2022 15:11:02 GMT" Content-Transfer-Encoding: base64 RnJvbSA4MTA0ZTUwYWEyOWEzZTk5Y2NkMTJlMzY5ZGQ3ZGZkYjFiM2VlZWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFkaGFyIEthbWF0aCA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4KRGF0ZTogVGh1LCA0IEF1ZyAyMDIyIDA5OjU5OjU5IC0wNTAwClN1YmplY3Q6 IFtQQVRDSF0gRml4LWZvci1tdWx0aXBsZS10aHJlYWQtZGV0ZWN0aW9uLWluLUFJWC4KCkluIEFJ WCBtdWx0aXBsZSB0aHJlYWRzIHdlcmUgbm90IGFkZGVkLiBUaGlzIHBhdGNoIGlzIGEgZml4IGZv ciB0aGUgc2FtZQoKV2hlbiB3ZSBjcmVhdGUgYSBwdGhyZWFkIGRlYnVnIHNlc3Npb24gd2UgaGF2 ZSBjYWxsYmFja3MgdG8gcmVhZCBzeW1ib2xzIGFuZCBtZW1vcnkuCgpPbmUgb2YgdGhvc2UgY2Fs bCBiYWNrcyBpcyBwZGNfcmVhZF9kYXRhLgoKQmVmb3JlIHdlIGNvbWUgaW50byBhaXgtdGhyZWFk IHdhaXQoKSB3ZSBzd2l0Y2ggdG8gbm8gdGhyZWFkIGFuZCB0aGVyZWZvcmUgdGhlIGN1cnJlbnQg dGhyZWFkIGlzIG51bGwuCgpXaGVuIHdlIGdldCBpbnRvIHBkY19yZWFkX2RhdGEgd2UgaGF2ZSBh IGRlcGVuZGVuY3kgdGhhdCB3ZSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IGN1cnJlbnQgdGhy ZWFkIHRoYXQgaGFzIGNhdXNlZCBhbiBldmVudCBvZiBuZXcgdGhyZWFkLAoKaW5vcmRlciB0byBy ZWFkIG1lbW9yeS4KCkhlbmNlIHdlIHN3aXRjaCB0byB0aGUgY29ycmVjdCB0aHJlYWQuCgpUaGlz IGlzIGRvbmUgYnkgcGFzc2luZyB0aGUgcGlkIGluIHRoZSBwdGhkYl91c2VyX3QgdXNlcl9jdXJy ZW50X3BpZCBwYXJhbWV0ZXIgaW4gZXZlcnkgY2FsbCBiYWNrLgotLS0KIGdkYi9haXgtdGhyZWFk LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nZGIvYWl4LXRocmVhZC5jIGIvZ2RiL2FpeC10aHJlYWQuYwppbmRleCA0YzkxOTVh N2YxMi4uMjU4NmU1OTUwN2MgMTAwNjQ0Ci0tLSBhL2dkYi9haXgtdGhyZWFkLmMKKysrIGIvZ2Ri L2FpeC10aHJlYWQuYwpAQCAtNzIsMTEgKzcyLDYgQEAgc3RhdGljIGJvb2wgZGVidWdfYWl4X3Ro cmVhZDsKIAogI2RlZmluZSBQRF9USUQocHRpZCkJKHBkX2FjdGl2ZSAmJiBwdGlkLnRpZCAoKSAh PSAwKQogCi0vKiBwdGhkYl91c2VyX3QgdmFsdWUgdGhhdCB3ZSBwYXNzIHRvIHB0aGRiIGZ1bmN0 aW9ucy4gIDAgY2F1c2VzCi0gICBQVEhEQl9CQURfVVNFUiBlcnJvcnMsIHNvIHVzZSAxLiAgKi8K LQotI2RlZmluZSBQRF9VU0VSCTEKLQogLyogU3VjY2VzcyBhbmQgZmFpbHVyZSB2YWx1ZXMgcmV0 dXJuZWQgYnkgcHRoZGIgY2FsbGJhY2tzLiAgKi8KIAogI2RlZmluZSBQRENfU1VDQ0VTUwlQVEhE Ql9TVUNDRVNTCkBAIC0zMzEsNyArMzI2LDcgQEAgcGlkX3RvX3ByYyAocHRpZF90ICpwdGlkcCkK ICAgIHRoZSBhZGRyZXNzIG9mIFNZTUJPTFNbPGk+XS5uYW1lLiAgKi8KIAogc3RhdGljIGludAot cGRjX3N5bWJvbF9hZGRycyAocHRoZGJfdXNlcl90IHVzZXIsIHB0aGRiX3N5bWJvbF90ICpzeW1i b2xzLCBpbnQgY291bnQpCitwZGNfc3ltYm9sX2FkZHJzIChwdGhkYl91c2VyX3QgdXNlcl9jdXJy ZW50X3BpZCwgcHRoZGJfc3ltYm9sX3QgKnN5bWJvbHMsIGludCBjb3VudCkKIHsKICAgc3RydWN0 IGJvdW5kX21pbmltYWxfc3ltYm9sIG1zOwogICBpbnQgaTsKQEAgLTMzOSw4ICszMzQsOCBAQCBw ZGNfc3ltYm9sX2FkZHJzIChwdGhkYl91c2VyX3QgdXNlciwgcHRoZGJfc3ltYm9sX3QgKnN5bWJv bHMsIGludCBjb3VudCkKIAogICBpZiAoZGVidWdfYWl4X3RocmVhZCkKICAgICBnZGJfcHJpbnRm IChnZGJfc3RkbG9nLAotCQkicGRjX3N5bWJvbF9hZGRycyAodXNlciA9ICVsZCwgc3ltYm9scyA9 IDB4JWx4LCBjb3VudCA9ICVkKVxuIiwKLQkJdXNlciwgKGxvbmcpIHN5bWJvbHMsIGNvdW50KTsK KwkJInBkY19zeW1ib2xfYWRkcnMgKHVzZXJfY3VycmVudF9waWQgPSAlbGQsIHN5bWJvbHMgPSAw eCVseCwgY291bnQgPSAlZClcbiIsCisJCXVzZXJfY3VycmVudF9waWQsIChsb25nKSBzeW1ib2xz LCBjb3VudCk7CiAKICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCiAgICAgewpAQCAtMzUz LDcgKzM0OCw3IEBAIHBkY19zeW1ib2xfYWRkcnMgKHB0aGRiX3VzZXJfdCB1c2VyLCBwdGhkYl9z eW1ib2xfdCAqc3ltYm9scywgaW50IGNvdW50KQogCXN5bWJvbHNbaV0uYWRkciA9IDA7CiAgICAg ICBlbHNlCiAJewotCSAgbXMgPSBsb29rdXBfbWluaW1hbF9zeW1ib2wgKG5hbWUsIE5VTEwsIE5V TEwpOworICAgICAgICAgbXMgPSBsb29rdXBfbWluaW1hbF9zeW1ib2wgKG5hbWUsIE5VTEwsIE5V TEwpOwogCSAgaWYgKG1zLm1pbnN5bSA9PSBOVUxMKQogCSAgICB7CiAJICAgICAgaWYgKGRlYnVn X2FpeF90aHJlYWQpCkBAIC0zNzgsNyArMzczLDcgQEAgcGRjX3N5bWJvbF9hZGRycyAocHRoZGJf dXNlcl90IHVzZXIsIHB0aGRiX3N5bWJvbF90ICpzeW1ib2xzLCBpbnQgY291bnQpCiAgICBJZiBz dWNjZXNzZnVsIHJldHVybiAwLCBlbHNlIG5vbi16ZXJvIGlzIHJldHVybmVkLiAgKi8KIAogc3Rh dGljIGludAotcGRjX3JlYWRfcmVncyAocHRoZGJfdXNlcl90IHVzZXIsIAorcGRjX3JlYWRfcmVn cyAocHRoZGJfdXNlcl90IHVzZXJfY3VycmVudF9waWQsIAogCSAgICAgICBwdGhkYl90aWRfdCB0 aWQsCiAJICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmbGFncywKIAkgICAgICAgcHRoZGJfY29u dGV4dF90ICpjb250ZXh0KQpAQCAtNDUwLDcgKzQ0NSw3IEBAIHBkY19yZWFkX3JlZ3MgKHB0aGRi X3VzZXJfdCB1c2VyLAogICAgSWYgc3VjY2Vzc2Z1bCByZXR1cm4gMCwgZWxzZSBub24temVybyBp cyByZXR1cm5lZC4gICovCiAKIHN0YXRpYyBpbnQKLXBkY193cml0ZV9yZWdzIChwdGhkYl91c2Vy X3QgdXNlciwKK3BkY193cml0ZV9yZWdzIChwdGhkYl91c2VyX3QgdXNlcl9jdXJyZW50X3BpZCwK IAkJcHRoZGJfdGlkX3QgdGlkLAogCQl1bnNpZ25lZCBsb25nIGxvbmcgZmxhZ3MsCiAJCXB0aGRi X2NvbnRleHRfdCAqY29udGV4dCkKQEAgLTUwMCwxNyArNDk1LDI3IEBAIHBkY193cml0ZV9yZWdz IChwdGhkYl91c2VyX3QgdXNlciwKIC8qIHB0aGRiIGNhbGxiYWNrOiByZWFkIExFTiBieXRlcyBm cm9tIHByb2Nlc3MgQUREUiBpbnRvIEJVRi4gICovCiAKIHN0YXRpYyBpbnQKLXBkY19yZWFkX2Rh dGEgKHB0aGRiX3VzZXJfdCB1c2VyLCB2b2lkICpidWYsIAorcGRjX3JlYWRfZGF0YSAocHRoZGJf dXNlcl90IHVzZXJfY3VycmVudF9waWQsIHZvaWQgKmJ1ZiwgCiAJICAgICAgIHB0aGRiX2FkZHJf dCBhZGRyLCBzaXplX3QgbGVuKQogewogICBpbnQgc3RhdHVzLCByZXQ7CiAKICAgaWYgKGRlYnVn X2FpeF90aHJlYWQpCiAgICAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywKLQkJInBkY19yZWFkX2Rh dGEgKHVzZXIgPSAlbGQsIGJ1ZiA9IDB4JWx4LCBhZGRyID0gJXMsIGxlbiA9ICVsZClcbiIsCi0J CXVzZXIsIChsb25nKSBidWYsIGhleF9zdHJpbmcgKGFkZHIpLCBsZW4pOworCQkicGRjX3JlYWRf ZGF0YSAodXNlcl9jdXJyZW50X3BpZCA9ICVsZCwgYnVmID0gMHglbHgsIGFkZHIgPSAlcywgbGVu ID0gJWxkKVxuIiwKKwkJdXNlcl9jdXJyZW50X3BpZCwgKGxvbmcpIGJ1ZiwgaGV4X3N0cmluZyAo YWRkciksIGxlbik7CiAKLSAgc3RhdHVzID0gdGFyZ2V0X3JlYWRfbWVtb3J5IChhZGRyLCAoZ2Ri X2J5dGUgKikgYnVmLCBsZW4pOworICAvKiBUaGlzIGlzIG5lZWRlZCB0byBlbGltaW5hdGUgdGhl IGRlcGVuZGVuY3kgb2YgY3VycmVudCB0aHJlYWQKKyAgICAgd2hpY2ggaXMgbnVsbCBzbyB0aGF0 IHRocmVhZCByZWFkcyB0aGUgY29ycmVjdCB0YXJnZXQgbWVtb3J5LiAqLyAKKyAgeworICAgIHNj b3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkIHJlc3RvcmVfY3VycmVudF90aHJlYWQ7CisgICAg LyogQmVmb3JlIHRoZSBmaXJzdCBpbmZlcmlvciBpcyBhZGRlZCwgd2UgcGFzcyBpbmZlcmlvcl9w dGlkLnBpZCgpIGZyb20gcGRfZW5hYmxlKCkgd2hpY2gKKyAgICAgICBpcyAwLiBUaGVyZSBpcyBu byBuZWVkIHRvIHN3aXRjaCB0aHJlYWRzIGR1cmluZyBmaXJzdCBpbml0aWFsaXNhdGlvbi4gSW4g dGhlIHJlc3QKKyAgICAgICBvZiB0aGUgY2FsbGJhY2tzIHRoZSBjdXJyZW50IHRocmVhZCBuZWVk cyB0byBiZSBjb3JyZWN0LiAqLworICAgIGlmICh1c2VyX2N1cnJlbnRfcGlkICE9IDApIAorICAg ICAgc3dpdGNoX3RvX3RocmVhZCAoY3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQg KCkgLHB0aWRfdCh1c2VyX2N1cnJlbnRfcGlkKSk7CisgICAgc3RhdHVzID0gdGFyZ2V0X3JlYWRf bWVtb3J5IChhZGRyLCAoZ2RiX2J5dGUgKikgYnVmLCBsZW4pOworICB9CiAgIHJldCA9IHN0YXR1 cyA9PSAwID8gUERDX1NVQ0NFU1MgOiBQRENfRkFJTFVSRTsKIAogICBpZiAoZGVidWdfYWl4X3Ro cmVhZCkKQEAgLTUyMiwxNSArNTI3LDE1IEBAIHBkY19yZWFkX2RhdGEgKHB0aGRiX3VzZXJfdCB1 c2VyLCB2b2lkICpidWYsCiAvKiBwdGhkYiBjYWxsYmFjazogd3JpdGUgTEVOIGJ5dGVzIGZyb20g QlVGIHRvIHByb2Nlc3MgQUREUi4gICovCiAKIHN0YXRpYyBpbnQKLXBkY193cml0ZV9kYXRhIChw dGhkYl91c2VyX3QgdXNlciwgdm9pZCAqYnVmLCAKK3BkY193cml0ZV9kYXRhIChwdGhkYl91c2Vy X3QgdXNlcl9jdXJyZW50X3BpZCwgdm9pZCAqYnVmLCAKIAkJcHRoZGJfYWRkcl90IGFkZHIsIHNp emVfdCBsZW4pCiB7CiAgIGludCBzdGF0dXMsIHJldDsKIAogICBpZiAoZGVidWdfYWl4X3RocmVh ZCkKICAgICBnZGJfcHJpbnRmIChnZGJfc3RkbG9nLAotCQkicGRjX3dyaXRlX2RhdGEgKHVzZXIg PSAlbGQsIGJ1ZiA9IDB4JWx4LCBhZGRyID0gJXMsIGxlbiA9ICVsZClcbiIsCi0JCXVzZXIsIChs b25nKSBidWYsIGhleF9zdHJpbmcgKGFkZHIpLCBsZW4pOworCQkicGRjX3dyaXRlX2RhdGEgKHVz ZXJfY3VycmVudF9waWQgPSAlbGQsIGJ1ZiA9IDB4JWx4LCBhZGRyID0gJXMsIGxlbiA9ICVsZClc biIsCisJCXVzZXJfY3VycmVudF9waWQsIChsb25nKSBidWYsIGhleF9zdHJpbmcgKGFkZHIpLCBs ZW4pOwogCiAgIHN0YXR1cyA9IHRhcmdldF93cml0ZV9tZW1vcnkgKGFkZHIsIChnZGJfYnl0ZSAq KSBidWYsIGxlbik7CiAgIHJldCA9IHN0YXR1cyA9PSAwID8gUERDX1NVQ0NFU1MgOiBQRENfRkFJ TFVSRTsKQEAgLTU0NSwxMiArNTUwLDEyIEBAIHBkY193cml0ZV9kYXRhIChwdGhkYl91c2VyX3Qg dXNlciwgdm9pZCAqYnVmLAogICAgaW4gQlVGUC4gICovCiAKIHN0YXRpYyBpbnQKLXBkY19hbGxv YyAocHRoZGJfdXNlcl90IHVzZXIsIHNpemVfdCBsZW4sIHZvaWQgKipidWZwKQorcGRjX2FsbG9j IChwdGhkYl91c2VyX3QgdXNlcl9jdXJyZW50X3BpZCwgc2l6ZV90IGxlbiwgdm9pZCAqKmJ1ZnAp CiB7CiAgIGlmIChkZWJ1Z19haXhfdGhyZWFkKQogICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2cs Ci0JCSJwZGNfYWxsb2MgKHVzZXIgPSAlbGQsIGxlbiA9ICVsZCwgYnVmcCA9IDB4JWx4KVxuIiwK LQkJdXNlciwgbGVuLCAobG9uZykgYnVmcCk7CisJCSJwZGNfYWxsb2MgKHVzZXJfY3VycmVudF9w aWQgPSAlbGQsIGxlbiA9ICVsZCwgYnVmcCA9IDB4JWx4KVxuIiwKKwkJdXNlcl9jdXJyZW50X3Bp ZCwgbGVuLCAobG9uZykgYnVmcCk7CiAgICpidWZwID0geG1hbGxvYyAobGVuKTsKICAgaWYgKGRl YnVnX2FpeF90aHJlYWQpCiAgICAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywgCkBAIC01NjcsMTIg KzU3MiwxMiBAQCBwZGNfYWxsb2MgKHB0aGRiX3VzZXJfdCB1c2VyLCBzaXplX3QgbGVuLCB2b2lk ICoqYnVmcCkKICAgIHBvaW50ZXIgdG8gdGhlIHJlc3VsdCBpbiBCVUZQLiAgKi8KIAogc3RhdGlj IGludAotcGRjX3JlYWxsb2MgKHB0aGRiX3VzZXJfdCB1c2VyLCB2b2lkICpidWYsIHNpemVfdCBs ZW4sIHZvaWQgKipidWZwKQorcGRjX3JlYWxsb2MgKHB0aGRiX3VzZXJfdCB1c2VyX2N1cnJlbnRf cGlkLCB2b2lkICpidWYsIHNpemVfdCBsZW4sIHZvaWQgKipidWZwKQogewogICBpZiAoZGVidWdf YWl4X3RocmVhZCkKICAgICBnZGJfcHJpbnRmIChnZGJfc3RkbG9nLAotCQkicGRjX3JlYWxsb2Mg KHVzZXIgPSAlbGQsIGJ1ZiA9IDB4JWx4LCBsZW4gPSAlbGQsIGJ1ZnAgPSAweCVseClcbiIsCi0J CXVzZXIsIChsb25nKSBidWYsIGxlbiwgKGxvbmcpIGJ1ZnApOworCQkicGRjX3JlYWxsb2MgKHVz ZXJfY3VycmVudF9waWQgPSAlbGQsIGJ1ZiA9IDB4JWx4LCBsZW4gPSAlbGQsIGJ1ZnAgPSAweCVs eClcbiIsCisJCXVzZXJfY3VycmVudF9waWQsIChsb25nKSBidWYsIGxlbiwgKGxvbmcpIGJ1ZnAp OwogICAqYnVmcCA9IHhyZWFsbG9jIChidWYsIGxlbik7CiAgIGlmIChkZWJ1Z19haXhfdGhyZWFk KQogICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csIApAQCAtNTg0LDExICs1ODksMTEgQEAgcGRj X3JlYWxsb2MgKHB0aGRiX3VzZXJfdCB1c2VyLCB2b2lkICpidWYsIHNpemVfdCBsZW4sIHZvaWQg KipidWZwKQogICAgcmVhbGxvYyBjYWxsYmFjay4gICovCiAKIHN0YXRpYyBpbnQKLXBkY19kZWFs bG9jIChwdGhkYl91c2VyX3QgdXNlciwgdm9pZCAqYnVmKQorcGRjX2RlYWxsb2MgKHB0aGRiX3Vz ZXJfdCB1c2VyX2N1cnJlbnRfcGlkLCB2b2lkICpidWYpCiB7CiAgIGlmIChkZWJ1Z19haXhfdGhy ZWFkKQogICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csIAotCQkicGRjX2ZyZWUgKHVzZXIgPSAl bGQsIGJ1ZiA9IDB4JWx4KVxuIiwgdXNlciwKKwkJInBkY19mcmVlICh1c2VyX2N1cnJlbnRfcGlk ID0gJWxkLCBidWYgPSAweCVseClcbiIsIHVzZXJfY3VycmVudF9waWQsCiAJCShsb25nKSBidWYp OwogICB4ZnJlZSAoYnVmKTsKICAgcmV0dXJuIFBEQ19TVUNDRVNTOwpAQCAtODg3LDcgKzg5Miw2 IEBAIHBkX3VwZGF0ZSAoaW50IHBpZCkKICAgc3RhdHVzID0gcHRoZGJfc2Vzc2lvbl91cGRhdGUg KHBkX3Nlc3Npb24pOwogICBpZiAoc3RhdHVzICE9IFBUSERCX1NVQ0NFU1MpCiAgICAgcmV0dXJu IHB0aWRfdCAocGlkKTsKLQogICBzeW5jX3RocmVhZGxpc3RzIChwaWQpOwogCiAgIC8qIERlZmlu ZSAiY3VycmVudCB0aHJlYWQiIGFzIG9uZSB0aGF0IGp1c3QgcmVjZWl2ZWQgYSB0cmFwIHNpZ25h bC4gICovCkBAIC05MTEsMTAgKzkxNSwxMSBAQCBzdGF0aWMgcHRpZF90CiBwZF9hY3RpdmF0ZSAo aW50IHBpZCkKIHsKICAgaW50IHN0YXR1czsKLQkJCi0gIHN0YXR1cyA9IHB0aGRiX3Nlc3Npb25f aW5pdCAoUERfVVNFUiwgYXJjaDY0ID8gUEVNXzY0QklUIDogUEVNXzMyQklULAotCQkJICAgICAg IFBUSERCX0ZMQUdfUkVHUywgJnBkX2NhbGxiYWNrcywgCi0JCQkgICAgICAgJnBkX3Nlc3Npb24p OworCQorICBzdGF0dXMgPSBwdGhkYl9zZXNzaW9uX2luaXQgKHBpZCwgYXJjaDY0ID8gUEVNXzY0 QklUIDogUEVNXzMyQklULAorCSAgCQkgICAgICAgICAgIFBUSERCX0ZMQUdfUkVHUywgJnBkX2Nh bGxiYWNrcywgCisJCQkgICAgICAgICAgICZwZF9zZXNzaW9uKTsKKyAgCiAgIGlmIChzdGF0dXMg IT0gUFRIREJfU1VDQ0VTUykKICAgICB7CiAgICAgICByZXR1cm4gcHRpZF90IChwaWQpOwpAQCAt OTU1LDggKzk2MCw5IEBAIHBkX2VuYWJsZSAodm9pZCkKIAogICAvKiBDaGVjayB3aGV0aGVyIHRo ZSBhcHBsaWNhdGlvbiBpcyBwdGhyZWFkZWQuICAqLwogICBzdHViX25hbWUgPSBOVUxMOwotICBz dGF0dXMgPSBwdGhkYl9zZXNzaW9uX3B0aHJlYWRlZCAoUERfVVNFUiwgUFRIREJfRkxBR19SRUdT LAorICBzdGF0dXMgPSBwdGhkYl9zZXNzaW9uX3B0aHJlYWRlZCAoaW5mZXJpb3JfcHRpZC5waWQg KCksIFBUSERCX0ZMQUdfUkVHUywKIAkJCQkgICAgJnBkX2NhbGxiYWNrcywgJnN0dWJfbmFtZSk7 CisgIAogICBpZiAoKHN0YXR1cyAhPSBQVEhEQl9TVUNDRVNTCiAgICAgICAgJiYgc3RhdHVzICE9 IFBUSERCX05PVF9QVEhSRUFERUQpIHx8ICFzdHViX25hbWUpCiAgICAgcmV0dXJuOwpAQCAtOTc2 LDcgKzk4Miw3IEBAIHBkX2VuYWJsZSAodm9pZCkKICAgLyogSWYgd2UncmUgZGVidWdnaW5nIGEg Y29yZSBmaWxlIG9yIGFuIGF0dGFjaGVkIGluZmVyaW9yLCB0aGUKICAgICAgcHRocmVhZCBsaWJy YXJ5IG1heSBhbHJlYWR5IGhhdmUgYmVlbiBpbml0aWFsaXplZCwgc28gdHJ5IHRvCiAgICAgIGFj dGl2YXRlIHRocmVhZCBkZWJ1Z2dpbmcuICAqLwotICBwZF9hY3RpdmF0ZSAoMSk7CisgIHBkX2Fj dGl2YXRlIChpbmZlcmlvcl9wdGlkLnBpZCAoKSk7CiB9CiAKIC8qIFVuZG8gdGhlIGVmZmVjdHMg b2YgcGRfZW5hYmxlKCkuICAqLwotLSAKMi4zMS4xCgo= --_004_CH2PR15MB354445D316B3AF2874998AD6D69F9CH2PR15MB3544namp_--