From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01olkn2010.outbound.protection.outlook.com [40.92.99.10]) by sourceware.org (Postfix) with ESMTPS id D145B3858C50 for ; Sat, 13 Aug 2022 01:58:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D145B3858C50 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E3dREDv5dzGoJMI5Mxb3wjE/xjGG64i7ky39inZzR34eRDdkGKlFx3+fgSyJOxXNLfJQLaKS5uvNIBk8qRKMYAaRcS3nPntEEqBHFR/RPcOhJM6Sev9Mla40aO6XiJTTGQKxuF6o1prjjKR2soz3//cUiNxvMhGr23hKsnjdV7g3f4KWyXgmDLY0McGpAD3rfb18/4zKImQaIIl4hAQR1MX8lLCx0InG52/66tIZxCBHx3Mc0A+vRU4+WIGlpv/dmwo/CSefq3qAlhg/1IFkYEYCePKb0HQh4/N5I/W9lUxfgRx9Kfk6j4KvZHleWn7hpOSCT7A4qIHs+DR/84ORGw== 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=GaORNwOIO8Qzu0oq+nHYV0+WAuSodig328AY+6Km1Pc=; b=C3cXGNSlxemXjRzesmg10Jh+R5XwV0GV/xKzZD5ACDNxLJeZjRTR6sVgyUg7ZNeahmDW1JhmDJjTDDlne8UB/YKnaBwTbtwHmNuW9KDWWU4teetLWh9Hls5oirYLyY3a6fHbiQZmFU1ibfY3xGiBF1VpIsnDQG+mvLxcmdIP2lXpaLncoePCcvmilNDpd+f13SlsIQ2PDUAd93RPVJKCXDGlVAdcbNFJprveo2PuD6iSYoIR+INpHS4eq/Vfe7dEpg0ZAXFknY9H2gwP4mHyjCPENvqQVklWFCvg7J7QXzScsu8jfCuWwL5JPmfOp3kuJsVTJlXOtxP6Kx0M4fSodw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:197::9) by TYCP286MB2702.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:245::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Sat, 13 Aug 2022 01:58:43 +0000 Received: from OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM ([fe80::fd29:1fe3:fd34:4172]) by OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM ([fe80::fd29:1fe3:fd34:4172%9]) with mapi id 15.20.5525.011; Sat, 13 Aug 2022 01:58:42 +0000 Message-ID: Subject: Re: [PATCH 13/14] Fix "source" with interpreter-exec From: Enze Li To: Tom Tromey , gdb-patches@sourceware.org Date: Sat, 13 Aug 2022 09:58:37 +0800 In-Reply-To: <20220813005442.4163512-14-tromey@adacore.com> References: <20220813005442.4163512-1-tromey@adacore.com> <20220813005442.4163512-14-tromey@adacore.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.3 X-TMN: [soPrDxWJgbAWoeY2ZSaiqPFUakkUlM4P] X-ClientProxiedBy: SG2PR04CA0195.apcprd04.prod.outlook.com (2603:1096:4:14::33) To OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:197::9) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0887ed40-24f0-4205-0617-08da7ccf5919 X-MS-TrafficTypeDiagnostic: TYCP286MB2702:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OHERXdb1doBLV7blvEPQH6Iux8HqtjR5FoCK0jGvCH/RQoL9rBo6He6RZHlsnOL8RQXoU+3qdMNl5E0RWosv/CVpd1IRh0ChnfkG0GRIPMsCggFduDl9c7VhKyfKaeRTzbH97HQonzE6P3Mw2pQuipSHnIsutHrsIj7m5V9GI03HnJ2NRbpNPOVa1Ou1DCpJQr4veJdRd3kCH9tt2PUqvMbzpltdZMxukH6NAcwqWAWPkUdhdwKD7bDYMv2JK6X3OS3Zbg59fMXZeBQMtbr9GvVX1/KYwe+A+i/UgNtyScwsHy8K6hEhN9V1KTxZyTPT7MRl60eXl+TA6t0nbIDd7GqVYRCT8mCvrybMPFEKOllOTtKG6dwNg5U687Bw4edDAy40zod2joj0B6wbI2yyVG3vcArkEUO3BCabe8hyquBH2+IMFjIh5XtnGErNTP6lwk2nPCrtRoVMy5hQUrgGcgK8Dii5hYiBtMZpDhwVafyvlmBbRFwtaZArsrYjsUKRRDn2l31xZ9m1Joy2J2dfsNw8tU3qsXmmnUdknhlBphFJNc+Xvho0NEqTO47gjPVmkDcUuNz8fb/QbvasdlN4p75yjf/Uzfgw9MT1HQBGD3u31hU2tkg2kYfzK/+tnGtTVkkWfh0TZVBNvtVNGlftCp0OOuBwLlwa+r10MVPtE7a/F3xN6ha7e18gApKzqgPT X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SkZQZXFpTGNJVzJBWVlKdUxzODduU0pTYXFLNUtxMFlEeXI4UVZYZFkzd3JZ?= =?utf-8?B?YTg0a1RUdkdpaEZiSGR5MTdqN29LTy82OUdPekpib3dpTWpqbkEydWlybDVX?= =?utf-8?B?WEloaU1HamVLNW1FTnFYcTlMcVBFRnMvenROUS9MU2lndGtYV2cyTzJRZFJJ?= =?utf-8?B?dzRyVlFOdWpGUXdGU00xcnJacEdMcVhta2JQVHRRTlFrWURtbXd1UGwzRU5y?= =?utf-8?B?MUxQWFpHMWJzS2lBOEpYWXd4NmZZeGQzUHV4cnpCaE96U3ZvUDV4a004UjNq?= =?utf-8?B?T1F5K1FVZDB5ZEJHUUJ1dzJNL1NHVGFYaFZQTXJpcEZaN3hYTDF6NHMvVWhq?= =?utf-8?B?UTRlMit2MmlXWmdtdXlSNFFDeGtDN0ZmYUlyaXEwQUZGWlQ0L2o2ZGxWMVpJ?= =?utf-8?B?MWxvZzE0VzlaeE8yaEtLWnNCTWxpcG82cGlNZnBuVkhsRFRMamtmUjl1YVQ5?= =?utf-8?B?R2FjYjFQbU9ZWGx4OEoxS1pEaEZvR3B5eWRmdGJzVDNrNTZwUFkrS1JaS2hq?= =?utf-8?B?SzlsbVZiTG5ITVNZNjhqZUVQSENLbjhJZlVTQlQxTnNMQ1NWMHlUbkJBa29q?= =?utf-8?B?eE0za0c2OFJBYlJiOStXZHdUOTQ2cXBwQlM3R2NLRUxvRVZ0MnptQ3dISkVu?= =?utf-8?B?YnJtSjVXMHRXU29ycjU1dXdKQzZkTTlnQjg1ckpBby9kUCt1UUh5NXlCNG5Q?= =?utf-8?B?V2I3cUN3Y3NVVkpBQXlyWWlHRnBlQm5vYVBjc2phUHVnMGxCOUJtV1VmUmFX?= =?utf-8?B?OXRicTJyZFdWajdia0s3UFVybEV2QWtTWVdweENsT28zVndpOGRsY0x3SGVI?= =?utf-8?B?ZDkwNEMvMVpCWGlpTndndVFWN3Y3d1VyVjVIalhhR1FmaHA1OS9PVWVOSjFX?= =?utf-8?B?cGJhaEowOTdMRWRYaTllN2JKZlhsN090WTNkZ2hnYTUyeGVldTgwVUNFdm42?= =?utf-8?B?OFZrSzI2SHFtck9XdjVCelFZZkhLZG5tWTdsWjhkNzJ1VkRLYm4ySUVheGxR?= =?utf-8?B?dDdPSWZkUG9XdVM4NzBDSTNlYUprK3NuVjJuWXBsWnRmMEFjTzdwNlRWK3Va?= =?utf-8?B?ZTcxa2Z0OVV5SlRNNzU5QWJoT3lSWGMyWFlnWG5ZdS9BZG1OSi9XZG4wbWxQ?= =?utf-8?B?SnYrL3JvUllsenQwZkh0TDdpWU4yL0c1RTlic0trV25peUdiVkE5d0M0dHQr?= =?utf-8?B?VUt2NFQ2M1I4S3ZpTjdSY0xjMUdHS2VpTHFPaklXZ3pPeHFudUU4dGFaRnk0?= =?utf-8?B?VEhaYWxZTGJTRzA2OWoyaTdXcmk3UllrajlvQXZWaDQ3TEhHYmprMVdWcmt2?= =?utf-8?B?RkpNVStuZER4eTNlVVZqaEttU3RoU0JacnJ4dUtxRElWWnc0Yk9Fa3ZwOFAr?= =?utf-8?B?eU8yc1UxRDZXMnFYZSt0ZmozMUtwUlVXdDFMd01oU0ZPaVZrM1dEZWR2RGdk?= =?utf-8?B?eGQ1VWxFUVUxQjFqcVd6Njk0NzJiMllUVnV2QXlibDVJWURneWN1QktzL2NI?= =?utf-8?B?WVN5R1F0WHZlUC9oUG5tcVlRVFRyall5NFBLc0dmSTBSVXVmdklEOWNyV253?= =?utf-8?B?NGxZZUJIRjZrUE45Ulg0TzE5c2RhQ3dlS0p4ZWtaOVFFUitHM05jZUwzMlc3?= =?utf-8?B?QkJSeVB5N1YrTHlxakV2UkxkU1BCcEw2NFZ3T3JDUGtZZDVXdmtMaGkrRCsv?= =?utf-8?B?bXQ5YkNROWxFTDNxOVUwdlJDb2dIc0RXT2V4NHgxdERhWGFNVFdQNlN3PT0=?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-05f45.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 0887ed40-24f0-4205-0617-08da7ccf5919 X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2022 01:58:42.3264 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB2702 X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, 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 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: Sat, 13 Aug 2022 01:58:48 -0000 Hi Tom, On Fri, 2022-08-12 at 18:54 -0600, Tom Tromey via Gdb-patches wrote: > PR mi/15811 points out that "source"ing a file that uses > interpreter-exec will put gdb in a weird state, where the CLI stops > working.=C2=A0 The bug is that tui_interp::suspend does not unregister th= e > event file descriptor. >=20 > The test case is from Andrew Burgess. >=20 > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D15811 > --- > =C2=A0gdb/testsuite/gdb.base/interpreter-exec.gdb | 20 > ++++++++++++++++++++ > =C2=A0gdb/testsuite/gdb.base/source.exp=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 6 ++++++ > =C2=A0gdb/tui/tui-interp.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 |=C2=A0 1 + > =C2=A03 files changed, 27 insertions(+) > =C2=A0create mode 100644 gdb/testsuite/gdb.base/interpreter-exec.gdb >=20 > diff --git a/gdb/testsuite/gdb.base/interpreter-exec.gdb > b/gdb/testsuite/gdb.base/interpreter-exec.gdb > new file mode 100644 > index 00000000000..6afff23af0f > --- /dev/null > +++ b/gdb/testsuite/gdb.base/interpreter-exec.gdb > @@ -0,0 +1,20 @@ > +# This testcase is part of GDB, the GNU debugger. > + > +# Copyright 2013 Free Software Foundation, Inc. ^^^^^^^^^^^^^^ Andrew created this test case in 2013, but it has not been modified over the years. In this case, do we need a range here? Best Regards, Enze > + > +# This program is free software; you can redistribute it and/or > modify > +# it under the terms of the GNU General Public License as published > by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=C2=A0 See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program.=C2=A0 If not, see > . > + > +# Test GDB's "source" command for scripts containing interpreter- > exec. > + > +interpreter-exec mi "-gdb-show verbose" > diff --git a/gdb/testsuite/gdb.base/source.exp > b/gdb/testsuite/gdb.base/source.exp > index 3d72b504832..9884a720420 100644 > --- a/gdb/testsuite/gdb.base/source.exp > +++ b/gdb/testsuite/gdb.base/source.exp > @@ -73,3 +73,9 @@ gdb_test "source ${srcdir}/${subdir}/source- > error.gdb" \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0"source-error-1.gdb:21: Error in sourced command > file:" \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0"Cannot access memory at address 0x0" ] \ > =C2=A0=C2=A0=C2=A0=C2=A0 "script contains error" > + > +# There was a case where sourcing a script containing "interpreter- > exec" > +# commands would corrupt the interpreter mechanism and crash gdb. > +gdb_test "source ${srcdir}/${subdir}/interpreter-exec.gdb" \ > +=C2=A0=C2=A0=C2=A0 "\\^done,value=3D\"off\"" \ > +=C2=A0=C2=A0=C2=A0 "source interpreter-exec" > diff --git a/gdb/tui/tui-interp.c b/gdb/tui/tui-interp.c > index 1c4ffbbc3aa..e0846fe80c4 100644 > --- a/gdb/tui/tui-interp.c > +++ b/gdb/tui/tui-interp.c > @@ -135,6 +135,7 @@ tui_interp::resume () > =C2=A0void > =C2=A0tui_interp::suspend () > =C2=A0{ > +=C2=A0 gdb_disable_readline (); > =C2=A0=C2=A0 tui_start_enabled =3D tui_active; > =C2=A0=C2=A0 tui_disable (); > =C2=A0}