From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28278 invoked by alias); 24 Nov 2019 12:17:50 -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 28270 invoked by uid 89); 24 Nov 2019 12:17:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=UD:dwarf2read.c, Breakpoint, dwarf2readc, dwarf2read.c X-HELO: EUR02-AM5-obe.outbound.protection.outlook.com Received: from mail-oln040092067028.outbound.protection.outlook.com (HELO EUR02-AM5-obe.outbound.protection.outlook.com) (40.92.67.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 24 Nov 2019 12:17:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MDpOvYmbq06R5nDgGqMMHXupMWBZS5EtZh77s/dnrdedug80LUgn3X8/nT+WjXTCt/ij1nyucutFcZue0CpDKX5gB3R7zWL581Hd/P5q5vAd2CqUntHekLBgyUIQIlQP/F9+18zGIv0rD0JJIzOnXxpC0Y1SqhsEq0i9d7PZdXdt6gGiUQ21Gwc4a0YTiAWIEbiP5Dy+YIckS4rSgVjJaGJMpLD7wpfEZqbCoamqDIhHuOZ/zgHeiyuGQEDbqUDs7n8jyGRj8UyV2ESA+NJFcSBxjaE1to0hhIaDZBBCeh9uq0w7tfTg4eXIpDsQUMt/xCmHz5rksx6Vwxjnd/cMZg== 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-SenderADCheck; bh=M63voFh0NYHcqD/PDrp3xRHdtyONH0wTSEBhBM4ekXk=; b=dQRXcJMMe1Yst3PAyfYPqnf7zUMlO5E8IwCHiFSB/7kIOUnQxLOd7Iikys9d6BDMAagZCJeVmDTNJ63G7T8LlnCOlVsyNybF8z9EOc6Qqyi/2aFkIy++wHPAPjJfbGbNoxTz5+vKDbceUpHOqtEqBGBYHozFLnlf6GcXhhOqLNmldSYeCBCRBm/5VNFzsBM9HbqJ4GTVK6asml3wqRm1TpWrj+/Ep4UFmXzGpGK5AI6RfhuRkcejhB2NgGnItIZj3ALpZCX3UnIFEoIOVKSOeEu4Oy0e6Fucwgab/DOcrqRVgWvkltLYZY0r+MxKjdqiBFNkbLAWY+pyz5uw+3D+kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from AM5EUR02FT060.eop-EUR02.prod.protection.outlook.com (10.152.8.51) by AM5EUR02HT190.eop-EUR02.prod.protection.outlook.com (10.152.9.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.17; Sun, 24 Nov 2019 12:17:46 +0000 Received: from VI1PR03MB4528.eurprd03.prod.outlook.com (10.152.8.60) by AM5EUR02FT060.mail.protection.outlook.com (10.152.9.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.17 via Frontend Transport; Sun, 24 Nov 2019 12:17:45 +0000 Received: from VI1PR03MB4528.eurprd03.prod.outlook.com ([fe80::49b8:a7e6:9f6f:862d]) by VI1PR03MB4528.eurprd03.prod.outlook.com ([fe80::49b8:a7e6:9f6f:862d%3]) with mapi id 15.20.2474.023; Sun, 24 Nov 2019 12:17:46 +0000 From: Bernd Edlinger To: "gdb-patches@sourceware.org" Subject: [PATCH] Fix an issue with the gdb step-over aka. "n" command Date: Sun, 24 Nov 2019 12:17:00 -0000 Message-ID: x-microsoft-original-message-id: <88bc2bae-2bc7-375c-f279-7440628c0ac3@hotmail.de> x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_VI1PR03MB4528BAD4E0EB8E72394FFCD8E44B0VI1PR03MB4528eurp_" MIME-Version: 1.0 X-SW-Source: 2019-11/txt/msg00792.txt.bz2 --_002_VI1PR03MB4528BAD4E0EB8E72394FFCD8E44B0VI1PR03MB4528eurp_ Content-Type: text/plain; charset="Windows-1252" Content-ID: <66DF64943BB7A247AB695DEC37A992CC@eurprd03.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 2340 Hi, this fixes an issue with the gdb step-over aka. "n" command. Apologies, the motivation for this patch was from sub-optimal debug experience using some gcc code involving inlined functions, and initially I tried to convince gcc folks that it is in fact a gcc bug, but... It can be seen when you debug an optimized stage-3 cc1 it does not affect -O0 code, though. Note: you can use "gcc -S hello.c -wrapper gdb,--args" to invoke cc1 with debugger attached. This example debug session will explain the effect. (gdb) b get_alias_set Breakpoint 5 at 0xa099f0: file ../../gcc-trunk/gcc/alias.c, line 837. (gdb) r Breakpoint 5, get_alias_set (t=3Dt@entry=3D0x7ffff7ff7ab0) at ../../gcc-tru= nk/gcc/alias.c:837 837 if (t =3D=3D error_mark_node (gdb) n 839 && (TREE_TYPE (t) =3D=3D 0 || TREE_TYPE (t) =3D=3D error_mark_node))) (gdb) n 3382 return __t; <-- now we have a problem: wrong line info here (gdb) bt #0 get_alias_set (t=3Dt@entry=3D0x7ffff7ff7ab0) at ../../gcc-trunk/gcc/tre= e.h:3382 #1 0x0000000000b25dfe in set_mem_attributes_minus_bitpos (ref=3D0x7ffff746= f990, t=3D0x7ffff7ff7ab0, objectp=3D1, bitpos=3D...) at ../../gcc-trunk/gcc/emit-rtl.c:1957 #2 0x0000000001137a55 in make_decl_rtl (decl=3D0x7ffff7ff7ab0) at ../../gc= c-trunk/gcc/varasm.c:1518 #3 0x000000000113b6e8 in assemble_variable (decl=3D0x7ffff7ff7ab0, top_lev= el=3D, at_end=3D,=20 dont_output_data=3D0) at ../../gcc-trunk/gcc/varasm.c:2246 #4 0x000000000113f0ea in varpool_node::assemble_decl (this=3D0x7ffff745b00= 0) at ../../gcc-trunk/gcc/varpool.c:584 #5 0x000000000113fa17 in varpool_node::assemble_decl (this=3D0x7ffff745b00= 0) at ../../gcc-trunk/gcc/varpool.c:750 The reason for this is a line number information that is exactly at the end of the inlined function, but there is no code at that place, only variable values (views) are declared there. Unfortunately the next instruction is again in the main program, but due to -gstatement-f= rontiers those do not have the is_stmt and are completely ignored by gdb at the mome= nt. This patch fixes the effect by rewriting the is_stmt attribute of the next location info under certain conditions. I have no idea how to write a test case for this since it happens only in o= ptimized code, and only under very special conditions. Thanks Bernd. --_002_VI1PR03MB4528BAD4E0EB8E72394FFCD8E44B0VI1PR03MB4528eurp_ Content-Type: text/x-patch; name="0001-Fix-an-issue-with-the-gdb-step-over-aka.-n-command.patch" Content-Description: 0001-Fix-an-issue-with-the-gdb-step-over-aka.-n-command.patch Content-Disposition: attachment; filename="0001-Fix-an-issue-with-the-gdb-step-over-aka.-n-command.patch"; size=2269; creation-date="Sun, 24 Nov 2019 12:17:45 GMT"; modification-date="Sun, 24 Nov 2019 12:17:45 GMT" Content-ID: <27DC14AE8B70DB469C6725D07BBB8C71@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 3079 RnJvbSAxODAxN2MzOWY5NTk4ZGNkOGUzMjA0YWZkNjI0YWZkMmFjNzIzMzAx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdl ciA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KRGF0ZTogU2F0LCAyMyBO b3YgMjAxOSAyMDo1OToyNSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBh biBpc3N1ZSB3aXRoIHRoZSBnZGIgc3RlcC1vdmVyIGFrYS4gIm4iIGNvbW1h bmQKCldoZW4gZGVidWdnaW5nIG9wdGltaXplZCBjb2RlIHdpdGggaW5saW5l ZCBmdW5jdGlvbnMgYnVpbHQKd2l0aCAtZ3N0YXRlbWVudC1mcm9udGllcnMg ZGVidWcgaW5mbywgaXQgbWF5IGhhcHBlbiB0aGF0CmFuIGlubGluZSBmdW5j dGlvbiBoYXMgYSBsaW5lIGxvY2F0aW9uIGV4YWN0bHkgYXQgdGhlCmVuZCBv ZiBhIGJsb2NrIHdoaWNoIGhhcyB0aGUgaXNfc3RtdCBhdHRyaWJ1dGUgc2V0 LCBmb2xsb3dlZApieSBhIGxvY2F0aW9uIGluZm8gd2hpY2ggaXMgYXQgdGhl IGNhbGwgc2l0ZSBidXQgaGFzIHRoZQppc19zdG10IGF0dHJpYnV0ZSBjbGVh cmVkIGFuZCBpcyB0aGVyZWZvcmUgaWdub3JlZC4KClRoZSB2aXN1YWwgZWZm ZWN0IGlzIHRoYXQgIm4iIGRvZXMgc29tZXRpbWVzIG5vdCBzdGVwIG92ZXIK dGhlIGlubGluZWQgZnVuY3Rpb24gYnV0IGluc3RlYWQganVtcHMgdG8gdGhl IGxhc3QgbGluZSBvZgp0aGUgaW5saW5lIGZ1bmN0aW9uLCBidXQgdGhlIGlu bGluZSBmdW5jdGlvbiBoYXMgYWxyZWFkeQpyZXR1cm5lZCwgaGVuY2UgdGhl IGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIGlzIGluY29uc2lzdGVudAphdCB0 aGlzIHBvaW50LgoKVGhpcyBwYXRjaCBkZXRlY3RzIGEgaXNfc3RtdCBsb2Nh dGlvbiBpbmZvIGZvbGxvd2VkIGJ5CmEgbG9jYXRpb24gaW5mbyBpbiBhIGRp ZmZlcmVudCBmaWxlIGF0IHRoZSBzYW1lIGFkZHJlc3MsCmJ1dCB3aXRob3V0 IGlzX3N0bXQgbG9jYXRpb24gc2V0LCBhbmQgZm9yY2VzIHRoZSBzZWNvbmQK bG9jYXRpb24gaW5mbyB0byByZXBsYWNlIHRoZSBwcmV2aW91cyBvbmUuCi0t LQogZ2RiL2R3YXJmMnJlYWQuYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCmluZGV4 IDFjYTgwMWMuLmE3YzRjOGUgMTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjJyZWFk LmMKKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAtMjA5MTUsNiArMjA5MTUs NyBAQCBwcml2YXRlOgogICAgICBleGFtcGxlLCB3aGVuIGRpc2NyaW1pbmF0 b3JzIGFyZSBwcmVzZW50LiAgUFIgMTcyNzYuICAqLwogICB1bnNpZ25lZCBp bnQgbV9sYXN0X2xpbmUgPSAwOwogICBib29sIG1fbGluZV9oYXNfbm9uX3pl cm9fZGlzY3JpbWluYXRvciA9IGZhbHNlOworICBDT1JFX0FERFIgbV9sYXN0 X2FkZHJlc3MgPSAoQ09SRV9BRERSKSAtMTsKIH07CiAKIHZvaWQKQEAgLTIx MDk3LDcgKzIxMDk4LDEwIEBAIGxucF9zdGF0ZV9tYWNoaW5lOjpyZWNvcmRf bGluZSAoYm9vbCBlbmRfc2VxdWVuY2UpCiAgIGVsc2UgaWYgKG1fb3BfaW5k ZXggPT0gMCB8fCBlbmRfc2VxdWVuY2UpCiAgICAgewogICAgICAgZmUtPmlu Y2x1ZGVkX3AgPSAxOwotICAgICAgaWYgKG1fcmVjb3JkX2xpbmVzX3AgJiYg KHByb2R1Y2VyX2lzX2NvZGV3YXJyaW9yIChtX2N1KSB8fCBtX2lzX3N0bXQp KQorICAgICAgaWYgKG1fcmVjb3JkX2xpbmVzX3AKKwkgICYmIChwcm9kdWNl cl9pc19jb2Rld2FycmlvciAobV9jdSkgfHwgbV9pc19zdG10IHx8IGVuZF9z ZXF1ZW5jZQorCSAgICAgIHx8IChtX2xhc3Rfc3ViZmlsZSAhPSBtX2N1LT5n ZXRfYnVpbGRlciAoKS0+Z2V0X2N1cnJlbnRfc3ViZmlsZSAoKQorCQkgICYm IG1fbGFzdF9hZGRyZXNzID09IG1fYWRkcmVzcykpKQogCXsKIAkgIGlmICht X2xhc3Rfc3ViZmlsZSAhPSBtX2N1LT5nZXRfYnVpbGRlciAoKS0+Z2V0X2N1 cnJlbnRfc3ViZmlsZSAoKQogCSAgICAgIHx8IGVuZF9zZXF1ZW5jZSkKQEAg LTIxMTIwLDYgKzIxMTI0LDcgQEAgbG5wX3N0YXRlX21hY2hpbmU6OnJlY29y ZF9saW5lIChib29sIGVuZF9zZXF1ZW5jZSkKIAkJfQogCSAgICAgIG1fbGFz dF9zdWJmaWxlID0gbV9jdS0+Z2V0X2J1aWxkZXIgKCktPmdldF9jdXJyZW50 X3N1YmZpbGUgKCk7CiAJICAgICAgbV9sYXN0X2xpbmUgPSBtX2xpbmU7CisJ ICAgICAgbV9sYXN0X2FkZHJlc3MgPSBtX2FkZHJlc3M7CiAJICAgIH0KIAl9 CiAgICAgfQotLSAKMS45LjEKCg== --_002_VI1PR03MB4528BAD4E0EB8E72394FFCD8E44B0VI1PR03MB4528eurp_--