From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 101985 invoked by alias); 20 May 2019 08:44:34 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 101832 invoked by uid 89); 20 May 2019 08:44:34 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: =?ISO-8859-1?Q?No, score=-24.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=don, don=e2, 46,7?= X-HELO: EUR04-VI1-obe.outbound.protection.outlook.com Received: from mail-eopbgr80055.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) (40.107.8.55) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 May 2019 08:44:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Aia2NikeFh3Lpb1zWojCLUzaF0lsUws9gmJeT0txqQ=; b=Xu2vfLicGtVOnafgy2QK4RIm5y8/r2mzkIwmlyCPkoWv5kJqszFI34MjRyMuyqgb145PtFhwT3L/WSLtN8Gxqf/V1sJiLoUzkX8Z7MglmG16GFgSj6O4DY8PV7FefeIv9FnrqCK2IxiOpi2dJCvbZ1FioR/z1NN8qpJuno5/QpU= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2184.eurprd08.prod.outlook.com (10.172.226.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.17; Mon, 20 May 2019 08:44:28 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::8c26:bb4b:6c93:9d40]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::8c26:bb4b:6c93:9d40%2]) with mapi id 15.20.1900.020; Mon, 20 May 2019 08:44:28 +0000 From: Alan Hayward To: Andrew Burgess CC: Andreas Schwab , "gdb-patches@sourceware.org" , nd , Pedro Alves Subject: Re: [PATCH] Supress SIGTTOU when handling errors Date: Mon, 20 May 2019 08:44:00 -0000 Message-ID: <2DDEE8DB-726F-466B-AB69-593351102ECB@arm.com> References: <20190516155150.71826-1-alan.hayward@arm.com> <87y333ev6j.fsf@igel.home> <20190519220622.GB2568@embecosm.com> In-Reply-To: <20190519220622.GB2568@embecosm.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-oob-tlc-oobclassifiers: OLM:10000; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 Content-Type: text/plain; charset="utf-8" Content-ID: <49BB6557E892B641BFE2212293C30DB0@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00460.txt.bz2 DQoNCj4gT24gMTkgTWF5IDIwMTksIGF0IDIzOjA2LCBBbmRyZXcgQnVyZ2Vz cyA8YW5kcmV3LmJ1cmdlc3NAZW1iZWNvc20uY29tPiB3cm90ZToNCj4gDQo+ ICogQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBsaW51eC1tNjhrLm9yZz4gWzIw MTktMDUtMTggMTU6NDE6NTYgKzAyMDBdOg0KPiANCj4+IE9uIE1haSAxNiAy MDE5LCBBbGFuIEhheXdhcmQgPEFsYW4uSGF5d2FyZEBhcm0uY29tPiB3cm90 ZToNCj4+IA0KPj4+IFtJJ3ZlIHNlZW4gdGhpcyBvbiBhbmQgb2ZmIG92ZXIg bWFueSBtb250aHMgb24gQUFyY2g2NCBhbmQgQXJtLCBhbmQgYW0NCj4+PiBh c3N1bWluZyBpdCBpc24ndCB0aGUgaW50ZW5kZWQgYmVoYXZpb3VyLiBOb3Qg c3VyZSBpZiB0aGlzIHNob3VsZCBiZSBhdA0KPj4+IHRjZHJhaW4gb3IgaXQg c2hvdWxkIGJlIGRvbmUgYXQgYSBoaWdoZXIgbGV2ZWwgLSBlZyBpbiB0aGUg dGVybWluYWwNCj4+PiBoYW5kbGluZyBjb2RlXQ0KPj4+IA0KPj4+IENhbGxz IHRvIGVycm9yICgpIGNhbiBjYXVzZSBTSUdUVE9VIHRvIHNlbmQgZ2RiIHRv IHRoZSBiYWNrZ3JvdW5kLg0KPj4+IA0KPj4+IEZvciBleGFtcGxlLCBvbiBh biBBcm0gYnVpbGQ6DQo+Pj4gIChnZGIpIGIgbWFpbg0KPj4+ICBCcmVha3Bv aW50IDEgYXQgMHgxMDc3NDogZmlsZSAvYnVpbGQvZ2RiL3Rlc3RzdWl0ZS8u Li8uLi8uLi9zcmMvYmludXRpbHMtZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvd2F0Y2hwb2ludC5jLCBsaW5lIDE3NC4NCj4+PiAgKGdkYikgcg0KPj4+ ICBTdGFydGluZyBwcm9ncmFtOiAvYnVpbGQvZ2RiL3Rlc3RzdWl0ZS9vdXRw dXRzL2dkYi5iYXNlL3dhdGNocG9pbnQvd2F0Y2hwb2ludA0KPj4+IA0KPj4+ ICBbMV0rICBTdG9wcGVkICAgICAgICAgICAgICAgICAuLi9nZGIgLi9vdXRw dXRzL2dkYi5iYXNlL3dhdGNocG9pbnQvd2F0Y2hwb2ludA0KPj4gDQo+PiBl NjcxY2Q1OWQ3NGNlYzlmNTNlMTEwY2U4ODcxMjhkMWVlYWRiN2YyIGlzIHRo ZSBmaXJzdCBiYWQgY29tbWl0DQo+PiBjb21taXQgZTY3MWNkNTlkNzRjZWM5 ZjUzZTExMGNlODg3MTI4ZDFlZWFkYjdmMg0KPj4gQXV0aG9yOiBQZWRybyBB bHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+DQo+PiBEYXRlOiAgIFR1ZSBKYW4g MzAgMTQ6MjM6NTEgMjAxOCArMDAwMA0KPj4gDQo+PiAgICBQZXItaW5mZXJp b3IgdGFyZ2V0X3Rlcm1pbmFsIHN0YXRlLCBmaXggUFIgZ2RiLzEzMjExLCBt b3JlDQo+PiANCj4+IEFuZHJlYXMuDQo+IA0KPiBBbmRyZWFzLA0KPiANCj4g VGhhbmtzIGZvciB0cmFja2luZyB0aGlzIGRvd24uDQoNCisxDQoNCj4gDQo+ IEl0IGFwcGVhcnMgdGhhdCB0aGUgY2hhbmdlIGluIHRoaXMgcGF0Y2ggdGhh dCBzZWVtcyB0byBiZSByZXNwb25zaWJsZQ0KPiB3b3VsZCBjb3JyZXNwb25k IHRvIEFsYW4ncyBwYXRjaCAjMiBvcHRpb24uDQo+IA0KPiBJIHdvbmRlciBp ZiB3ZSBzaG91bGQganVzdCBhcHBseSBzb21ldGhpbmcgbGlrZSB0aGUgYmVs b3cgdG8gcmV2ZXJ0DQo+IHBhcnQgb2YgUGVkcm8ncyBwYXRjaD8gIFRoaXMg d2lsbCBmaXggdGhpcyBwcm9ibGVtcyB3ZSdyZSBzZWVpbmcgKGFzDQo+IEFs YW4gYWxyZWFkeSBwb2ludGVkIG91dCkgYXMgdGhpcyBlZmZlY3RpdmVseSBt YWtlcyAnb3Vyc19mb3Jfb3V0cHV0DQo+ICgpJyB0aGUgc2FtZSBhcyAnb3Vy cyAoKScgYWdhaW4uDQo+IA0KPiBNeSBjb25jZXJuIHdvdWxkIGJlIHdoZXRo ZXIgdGhlcmUncyBnb2luZyB0byBiZSBzb21lIHBsYWNlIGluIEdEQiB0aGF0 DQo+IGNhbGxzICdvdXJzX2Zvcl9vdXRwdXQgKCknIGFuZCBhc3N1bWVzIEN0 cmwtQyAvIEN0cmwtWiB3aWxsIGJlDQo+IGF1dG9tYXRpY2FsbHkgcGFzc2Vk IHRvIHRoZSBpbmZlcmlvci4gIFRoaXMgY2hhbmdlIG1lYW5zIHRoZXkgYXJl IG5vdw0KPiBwYXNzZWQgdG8gR0RCIGluc3RlYWQsIHdpbGwgR0RCIGFsd2F5 cyBmb3J3YXJkIHRoZXNlIHRvIHRoZSBpbmZlcmlvcg0KPiBjb3JyZWN0bHk/ DQoNCknigJltIHdhcnkgYWJvdXQgY2hhbmdpbmcgdGhlIGJlaGF2aW91ciBv ZiBvdXJzX2Zvcl9vdXRwdXQgZm9yIGV2ZXJ5b25lLiBXaXRoDQpwYXRjaCAj MiAvIHlvdXIgdmVyc2lvbiwgdGhlbiBpdOKAmXMgbWFraW5nIDo6b3Vyc19m b3Jfb3V0cHV0IG1lYW5pbmdsZXNzDQpiZWNhdXNlIGl04oCZcyBqdXN0IHRo ZSBzYW1lIGFzIDo6b3Vycy4NCg0KTG9va2luZyBhcm91bmQgdGhlIGNvZGUs IDo6b3Vyc19mb3Jfb3V0cHV0IGlzIG9ubHkoPykgdXNlZCBkaXJlY3RseSBi ZWZvcmUNCnByaW50aW5nIHRvIHRoZSB0ZXJtaW5hbC4gSXQgbG9va3MgbGlr ZSBwcmludF9mbHVzaCBpcyB0aGUgb25seSBjYXNlIHdoZXJlDQpvdXRwdXQg aXMgZmx1c2hlZCBiZWZvcmUgcHJpbnRpbmcuDQoNClRoZXJlZm9yZSBpcyB0 aGlzIGp1c3QgYSBlZGdlIGNhc2U/IC0gb3Vyc19mb3Jfb3V0cHV0IHdvcmtz IGZpbmUgYXMgbG9uZw0KYXMgeW91IGRvbuKAmXQgd2FudCB0byBmbHVzaC4N Cg0KcHJpbnRfZmx1c2ggdXNlcyBzY29wZWRfcmVzdG9yZV90ZXJtaW5hbF9z dGF0ZSwgc28gdGhhdCBtZWFucyB0aGUgdGVybWluYWwNCnN0YXRlIGlzIHJl c3RvcmVkIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLg0KDQpJ4oCZbSB3 b25kZXJpbmcgdGhlbiwgaWYgdGhpcyB2ZXJzaW9uIGlzIGJldHRlci4gT25s eSB1c2UgOjpvdXJzIGFyb3VuZCB0aGUNCmZsdXNoLCBhbmQgdGhlbiBzd2l0 Y2ggdG8gb3Vyc19mb3Jfb3V0cHV0IGZvciB0aGUgcHJpbnRpbmcuDQoNCg0K ZGlmZiAtLWdpdCBhL2dkYi9leGNlcHRpb25zLmMgYi9nZGIvZXhjZXB0aW9u cy5jDQppbmRleCBlYmRjNzFkOThkLi5kNGUzMTk3ZDIxIDEwMDY0NA0KLS0t IGEvZ2RiL2V4Y2VwdGlvbnMuYw0KKysrIGIvZ2RiL2V4Y2VwdGlvbnMuYw0K QEAgLTQ2LDcgKzQ2LDkgQEAgcHJpbnRfZmx1c2ggKHZvaWQpDQogICBpZiAo Y3VycmVudF90b3BfdGFyZ2V0ICgpICE9IE5VTEwgJiYgdGFyZ2V0X3N1cHBv cnRzX3Rlcm1pbmFsX291cnMgKCkpDQogICAgIHsNCiAgICAgICB0ZXJtX3N0 YXRlLmVtcGxhY2UgKCk7DQotICAgICAgdGFyZ2V0X3Rlcm1pbmFsOjpvdXJz X2Zvcl9vdXRwdXQgKCk7DQorICAgICAgLyogVXNlIDo6b3VycyBpbnN0ZWFk IG9mIDo6b3Vyc19mb3Jfb3V0cHV0IHRvIHByZXZlbnQgYSBTSUdUVE9VIGR1 cmluZyB0aGUNCisgICAgICAgIGZsdXNoLiAgKi8NCisgICAgICB0YXJnZXRf dGVybWluYWw6Om91cnMgKCk7DQogICAgIH0NCg0KICAgLyogV2Ugd2FudCBh bGwgb3V0cHV0IHRvIGFwcGVhciBub3csIGJlZm9yZSB3ZSBwcmludCB0aGUg ZXJyb3IuICBXZQ0KQEAgLTcwLDYgKzcyLDEzIEBAIHByaW50X2ZsdXNoICh2 b2lkKQ0KICAgICAgIHNlcmlhbF91bl9mZG9wZW4gKGdkYl9zdGRvdXRfc2Vy aWFsKTsNCiAgICAgfQ0KDQorICAvKiBOb3cgdGhhdCB0aGUgb3V0cHV0IGhh cyBiZWVuIGZsdXNoZWQsIHN3aXRjaCB0byA6Om91cnNfZm9yX291dHB1dC4g ICovDQorICBpZiAoY3VycmVudF90b3BfdGFyZ2V0ICgpICE9IE5VTEwgJiYg dGFyZ2V0X3N1cHBvcnRzX3Rlcm1pbmFsX291cnMgKCkpDQorICAgIHsNCisg ICAgICB0ZXJtX3N0YXRlLmVtcGxhY2UgKCk7DQorICAgICAgdGFyZ2V0X3Rl cm1pbmFsOjpvdXJzX2Zvcl9vdXRwdXQgKCk7DQorICAgIH0NCisNCiAgIGFu bm90YXRlX2Vycm9yX2JlZ2luICgpOw0KIH0NCg0KDQo+IA0KPiBUaGFua3Ms DQo+IEFuZHJldw0KPiANCj4gDQo+IA0KPiAtLQ0KPiANCj4gZGlmZiAtLWdp dCBhL2dkYi9pbmZsb3cuYyBiL2dkYi9pbmZsb3cuYw0KPiBpbmRleCAzMzli NTVjMGJjNi4uNmVkMjJjMTRiNmIgMTAwNjQ0DQo+IC0tLSBhL2dkYi9pbmZs b3cuYw0KPiArKysgYi9nZGIvaW5mbG93LmMNCj4gQEAgLTUwNiwxMCArNTA2 LDExIEBAIGNoaWxkX3Rlcm1pbmFsX291cnNfMSAodGFyZ2V0X3Rlcm1pbmFs X3N0YXRlIGRlc2lyZWRfc3RhdGUpDQo+ICAgICAgIC8qIFNldCB0dHkgc3Rh dGUgdG8gb3VyX3R0eXN0YXRlLiAgKi8NCj4gICAgICAgc2VyaWFsX3NldF90 dHlfc3RhdGUgKHN0ZGluX3NlcmlhbCwgb3VyX3Rlcm1pbmFsX2luZm8udHR5 c3RhdGUpOw0KPiANCj4gLSAgICAgIC8qIElmIHdlIG9ubHkgd2FudCBvdXRw dXQsIHRoZW4gbGVhdmUgdGhlIGluZmVyaW9yJ3MgcGdycCBpbiB0aGUNCj4g LQkgZm9yZWdyb3VuZCwgc28gdGhhdCBDdHJsLUMvQ3RybC1aIHJlYWNoIHRo ZSBpbmZlcmlvcg0KPiAtCSBkaXJlY3RseS4gICovDQo+IC0gICAgICBpZiAo am9iX2NvbnRyb2wgJiYgZGVzaXJlZF9zdGF0ZSA9PSB0YXJnZXRfdGVybWlu YWxfc3RhdGU6OmlzX291cnMpDQo+ICsgICAgICAvKiBJZiBtaWdodCBiZSB0 ZW1wdGluZyB0byB0aGluayB0aGF0IHdlIGNhbiBsZWF2ZSB0aGUgaW5mZXJp b3Incw0KPiArCSBwZ3JwIGluIHRoZSBmb3JlZ3JvdW5kIGlmIHdlIG9ubHkg d2FudCBvdXJzX2Zvcl9vdXRwdXQsIGhvd2V2ZXIsDQo+ICsJIGNhbGxzIHRv IHRjZHJhaW4gd2l0aGluIEdEQiB3aWxsIHJlc3VsdCBpbiBTSUdUVE9VIHVu bGVzcyBHREIncw0KPiArCSBwcm9jZXNzIGdyb3VwIGlzIGluIHRoZSBmb3Jl Z3JvdW5kLiAgKi8NCj4gKyAgICAgIGlmIChqb2JfY29udHJvbCkNCj4gCXsN Cj4gI2lmZGVmIEhBVkVfVEVSTUlPU19IDQo+IAkgIHJlc3VsdCA9IHRjc2V0 cGdycCAoMCwgb3VyX3Rlcm1pbmFsX2luZm8ucHJvY2Vzc19ncm91cCk7DQo+ IEBAIC01MjYsNyArNTI3LDcgQEAgY2hpbGRfdGVybWluYWxfb3Vyc18xICh0 YXJnZXRfdGVybWluYWxfc3RhdGUgZGVzaXJlZF9zdGF0ZSkNCj4gI2VuZGlm IC8qIHRlcm1pb3MgKi8NCj4gCX0NCj4gDQo+IC0gICAgICBpZiAoIWpvYl9j b250cm9sICYmIGRlc2lyZWRfc3RhdGUgPT0gdGFyZ2V0X3Rlcm1pbmFsX3N0 YXRlOjppc19vdXJzKQ0KPiArICAgICAgaWYgKCFqb2JfY29udHJvbCkNCj4g CXsNCj4gCSAgc2lnbmFsIChTSUdJTlQsIHNpZ2ludF9vdXJzKTsNCj4gI2lm ZGVmIFNJR1FVSVQNCg0K >From gdb-patches-return-156229-listarch-gdb-patches=sources.redhat.com@sourceware.org Mon May 20 09:12:04 2019 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 118276 invoked by alias); 20 May 2019 09:12:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 118199 invoked by uid 89); 20 May 2019 09:12:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Spam-Relays-External:209.85.221.68, surely, H*RU:209.85.221.68 X-HELO: mail-wr1-f68.google.com Received: from mail-wr1-f68.google.com (HELO mail-wr1-f68.google.com) (209.85.221.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 May 2019 09:12:01 +0000 Received: by mail-wr1-f68.google.com with SMTP id g12so13385963wro.8 for ; Mon, 20 May 2019 02:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=ld2eyR8IDgkOcm1sjGzMgECmTAVNbNGpAkRe15dh8rQ=; b=JogpJ59snxumJbGnkHTfM1PahdKdAB2wpL0sRghv1zr2Nek7UGwk9qUy/17tY8eKAQ /YCf7rk9MBlO2TLSGM20MPQRfH9q5mo/hR5gExQj9dJhG0uGnj2ok3qDQpuhZnZ2yPkM OcRzJ5D3BUbzTw47IgHUmtr/3GgWJ14mb89SXx4ZoENlBX15DebYHnMOfYVBE83H0Fve xXoEyxeEh7nKcUHPrSVttxviiwOcuCLHYAu74dVT/Ih275MKBDRHoOZA12FZYNpGfdTD AekBJ8TupL/1moSfMPAUu1zOihNfRRe3lJSkh51Bhk6Q1NIbPggRwtQmkyN1tvrostHg 80JQ== Return-Path: Received: from localhost (cust64-dsl91-135-5.idnet.net. [91.135.5.64]) by smtp.gmail.com with ESMTPSA id 16sm9236293wmx.45.2019.05.20.02.11.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 May 2019 02:11:58 -0700 (PDT) Date: Mon, 20 May 2019 09:12:00 -0000 From: Andrew Burgess To: Alan Hayward Cc: Andreas Schwab , "gdb-patches@sourceware.org" , nd , Pedro Alves Subject: Re: [PATCH] Supress SIGTTOU when handling errors Message-ID: <20190520091157.GC2568@embecosm.com> References: <20190516155150.71826-1-alan.hayward@arm.com> <87y333ev6j.fsf@igel.home> <20190519220622.GB2568@embecosm.com> <2DDEE8DB-726F-466B-AB69-593351102ECB@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <2DDEE8DB-726F-466B-AB69-593351102ECB@arm.com> X-Fortune: Two heads are more numerous than one. X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] User-Agent: Mutt/1.9.2 (2017-12-15) X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00461.txt.bz2 Content-length: 6784 * Alan Hayward [2019-05-20 08:44:27 +0000]: >=20 >=20 > > On 19 May 2019, at 23:06, Andrew Burgess = wrote: > >=20 > > * Andreas Schwab [2019-05-18 15:41:56 +0200]: > >=20 > >> On Mai 16 2019, Alan Hayward wrote: > >>=20 > >>> [I've seen this on and off over many months on AArch64 and Arm, and am > >>> assuming it isn't the intended behaviour. Not sure if this should be = at > >>> tcdrain or it should be done at a higher level - eg in the terminal > >>> handling code] > >>>=20 > >>> Calls to error () can cause SIGTTOU to send gdb to the background. > >>>=20 > >>> For example, on an Arm build: > >>> (gdb) b main > >>> Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binu= tils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174. > >>> (gdb) r > >>> Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/w= atchpoint > >>>=20 > >>> [1]+ Stopped ../gdb ./outputs/gdb.base/watchpoint/w= atchpoint > >>=20 > >> e671cd59d74cec9f53e110ce887128d1eeadb7f2 is the first bad commit > >> commit e671cd59d74cec9f53e110ce887128d1eeadb7f2 > >> Author: Pedro Alves > >> Date: Tue Jan 30 14:23:51 2018 +0000 > >>=20 > >> Per-inferior target_terminal state, fix PR gdb/13211, more > >>=20 > >> Andreas. > >=20 > > Andreas, > >=20 > > Thanks for tracking this down. >=20 > +1 >=20 > >=20 > > It appears that the change in this patch that seems to be responsible > > would correspond to Alan's patch #2 option. > >=20 > > I wonder if we should just apply something like the below to revert > > part of Pedro's patch? This will fix this problems we're seeing (as > > Alan already pointed out) as this effectively makes 'ours_for_output > > ()' the same as 'ours ()' again. > >=20 > > My concern would be whether there's going to be some place in GDB that > > calls 'ours_for_output ()' and assumes Ctrl-C / Ctrl-Z will be > > automatically passed to the inferior. This change means they are now > > passed to GDB instead, will GDB always forward these to the inferior > > correctly? >=20 > I=E2=80=99m wary about changing the behaviour of ours_for_output for ever= yone. With > patch #2 / your version, then it=E2=80=99s making ::ours_for_output meani= ngless > because it=E2=80=99s just the same as ::ours. I share your concern, but... If you check the comment on 'child_terminal_ours_for_output' you'll see a little note left from before Pedro's commit e671cd59d74cec9f which says: /* Put some of our terminal settings into effect, enough to get proper results from our output, but do not change into or out of RAW mode so that no input is discarded. After doing this, either terminal_ours or terminal_inferior should be called to get back to a normal state of affairs. This next bit is interesting.... N.B. The implementation is (currently) no different than child_terminal_ours. See child_terminal_ours_1. */ void child_terminal_ours_for_output (struct target_ops *self) { child_terminal_ours_1 (1); } So, until Pedro's change 'ours ()' and 'ours_for_output ()' were the same. Now that doesn't mean we should go back, but I think it means I'd be willing to consider it (hence why I originally came our against it, then changed my mind). >=20 > Looking around the code, ::ours_for_output is only(?) used directly before > printing to the terminal. It looks like print_flush is the only case where > output is flushed before printing. >=20 > Therefore is this just a edge case? - ours_for_output works fine as long > as you don=E2=80=99t want to flush. >=20 > print_flush uses scoped_restore_terminal_state, so that means the terminal > state is restored at the end of the function. >=20 > I=E2=80=99m wondering then, if this version is better. Only use ::ours ar= ound the > flush, and then switch to ours_for_output for the printing. Having claimed the terminal with ::ours I don't think there's any need to switch to ours_for_output. ours should surely always be a super set of ours_for_output, and we're going to restore back anyway, so I think just the first call to ours would be enough. I'd be just as happy with this approach as with the patch I suggested. I'd like Pedro's input given he wrote the original terminal patch that exposed this issue. Thanks, Andrew >=20 >=20 > diff --git a/gdb/exceptions.c b/gdb/exceptions.c > index ebdc71d98d..d4e3197d21 100644 > --- a/gdb/exceptions.c > +++ b/gdb/exceptions.c > @@ -46,7 +46,9 @@ print_flush (void) > if (current_top_target () !=3D NULL && target_supports_terminal_ours (= )) > { > term_state.emplace (); > - target_terminal::ours_for_output (); > + /* Use ::ours instead of ::ours_for_output to prevent a SIGTTOU du= ring the > + flush. */ > + target_terminal::ours (); > } >=20 > /* We want all output to appear now, before we print the error. We > @@ -70,6 +72,13 @@ print_flush (void) > serial_un_fdopen (gdb_stdout_serial); > } >=20 > + /* Now that the output has been flushed, switch to ::ours_for_output. = */ > + if (current_top_target () !=3D NULL && target_supports_terminal_ours (= )) > + { > + term_state.emplace (); > + target_terminal::ours_for_output (); > + } > + > annotate_error_begin (); > } >=20 >=20 > >=20 > > Thanks, > > Andrew > >=20 > >=20 > >=20 > > -- > >=20 > > diff --git a/gdb/inflow.c b/gdb/inflow.c > > index 339b55c0bc6..6ed22c14b6b 100644 > > --- a/gdb/inflow.c > > +++ b/gdb/inflow.c > > @@ -506,10 +506,11 @@ child_terminal_ours_1 (target_terminal_state desi= red_state) > > /* Set tty state to our_ttystate. */ > > serial_set_tty_state (stdin_serial, our_terminal_info.ttystate); > >=20 > > - /* If we only want output, then leave the inferior's pgrp in the > > - foreground, so that Ctrl-C/Ctrl-Z reach the inferior > > - directly. */ > > - if (job_control && desired_state =3D=3D target_terminal_state::i= s_ours) > > + /* If might be tempting to think that we can leave the inferior's > > + pgrp in the foreground if we only want ours_for_output, however, > > + calls to tcdrain within GDB will result in SIGTTOU unless GDB's > > + process group is in the foreground. */ > > + if (job_control) > > { > > #ifdef HAVE_TERMIOS_H > > result =3D tcsetpgrp (0, our_terminal_info.process_group); > > @@ -526,7 +527,7 @@ child_terminal_ours_1 (target_terminal_state desire= d_state) > > #endif /* termios */ > > } > >=20 > > - if (!job_control && desired_state =3D=3D target_terminal_state::= is_ours) > > + if (!job_control) > > { > > signal (SIGINT, sigint_ours); > > #ifdef SIGQUIT >=20