From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 102345 invoked by alias); 5 Mar 2020 18:01:51 -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 102328 invoked by uid 89); 5 Mar 2020 18:01:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.7 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=H*r:200, 0*, H*RU:sk:AM4PR07, H*f:sk:cover.1 X-HELO: EUR05-VI1-obe.outbound.protection.outlook.com Received: from mail-vi1eur05olkn2090.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) (40.92.90.90) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 05 Mar 2020 18:01:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F7dfRkVX0BKH+mSnasyHQlBXnbo13ikSihzSCHTksQbxyqmPSgpwj0wIGSryYHdpJRpWtZz80aSDAhD3ctXCEpzT+IJf7OA1R11nCuJcBCtcT8zrqaNa/Bm6gYA1fcI0wkzmd7MlsGda950S9VHGxaP6Gs8xE2KtAD7a5H3Ofqb00WypufHsuCfhhEk7O31QFL0ztpDIjCuGbtrQkE1sbTqJZfK48n/7A5ZeuOQJarziePjY1MWvjWlHeHZ9odlD4HusC9YH2qU7tWZ4egM861kDNQUG6vheZpmQerGDSaCThMP4K59BsvQqebvtJh03CMD3pliOWw0FaObU3zqzDw== 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=jU8piyzRLAsm4YlvQ2bUHlcaPBE7LMdwPslT2DttNSQ=; b=d9EepLFHjK+F6YW3l0VhXSDBnG/5u+pIN1JpJksiZoar5XoAXgy8gIjffMFdPTrXUPV+axGHsiL1lPFmvtlt9muff/7SwUm/CqX3aAf0w0ZJ7ne151mgXmms28Lnz5dCLI90M27XOpxRMZv+g/1ittoJanLZecnlhoxGTzE1zt92wOXqBtFpuY4pHTFBcxzeh10+G0sqrbQ+O9jK7pBKU4JuVdFlq/4px9Y+32FWOGaac9v+Tm3aDSV4dDjCIcFZMO5bUus+T1SUR57xbwnddUopegJmxhLBHL5pfg0s50czM9hI+EWCCbUFvT7Ou9cPQSUCCd5x8q443AEoy/cQCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VI1EUR05FT038.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::3b) by VI1EUR05HT059.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.11; Thu, 5 Mar 2020 18:01:45 +0000 Received: from AM6PR03MB5170.eurprd03.prod.outlook.com (10.233.242.56) by VI1EUR05FT038.mail.protection.outlook.com (10.233.242.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.11 via Frontend Transport; Thu, 5 Mar 2020 18:01:45 +0000 Received: from AM6PR03MB5170.eurprd03.prod.outlook.com ([fe80::1956:d274:cab3:b4dd]) by AM6PR03MB5170.eurprd03.prod.outlook.com ([fe80::1956:d274:cab3:b4dd%6]) with mapi id 15.20.2772.019; Thu, 5 Mar 2020 18:01:45 +0000 Received: from [192.168.1.101] (92.77.140.102) by AM4PR0701CA0018.eurprd07.prod.outlook.com (2603:10a6:200:42::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2814.6 via Frontend Transport; Thu, 5 Mar 2020 18:01:44 +0000 From: Bernd Edlinger To: Andrew Burgess CC: "gdb-patches@sourceware.org" Subject: Re: [PATCH 2/2] gdb: Add support for tracking the DWARF line table is-stmt field Date: Thu, 05 Mar 2020 18:01:00 -0000 Message-ID: References: <94e33268f64060fc887670f4ee5ed524050cbcc7.1580902412.git.andrew.burgess@embecosm.com> <20200211135710.GR4020@embecosm.com> In-Reply-To: x-microsoft-original-message-id: <7c2dc85d-97f7-159d-e4f1-2ad63cc395bd@hotmail.de> x-ms-exchange-antispam-messagedata: 25CpXkgKldO4MVq3H5yI2060idc07vBUWDMrCaYQ60jcQEiB+Ke1IV73KIDeRpdnuglFm0kf7aBmdnVmx+VTZyLJXBvP8TVTK0n92Uf5Q+Ai6q+Ok+W4+dy/PCprgVBnFThgkfpmkG9MksQXqn4dnQ== x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_AM6PR03MB517018CA7EE81453672EFDEFE4E20AM6PR03MB5170eurp_" MIME-Version: 1.0 X-SW-Source: 2020-03/txt/msg00121.txt --_002_AM6PR03MB517018CA7EE81453672EFDEFE4E20AM6PR03MB5170eurp_ Content-Type: text/plain; charset="Windows-1252" Content-ID: <114A231D788AE5459994705322758690@eurprd03.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 4101 On 2/14/20 9:05 PM, Bernd Edlinger wrote: > On 2/11/20 2:57 PM, Andrew Burgess wrote: >> * Bernd Edlinger [2020-02-05 17:55:37 +0000]: >> >>> On 2/5/20 12:37 PM, Andrew Burgess wrote: >>> >>> did you mean, when we don't land in the middle of a line ? >> >> No, in this case I did write the correct thing. >> >> So GDB had/has some code designed to "improve" the handling of looping >> constructs. I think the idea is to handle cases like this: >> >> 0x100 LN=3D5 >> 0x104 <-\ >> 0x108 | >> 0x10c | LN=3D6 >> 0x110 | >> 0x114 --/ >> >> So when line 6 branches back to the middle of line 5, we don't stop >> (because we are in the middle of line 5), but we do want to stop at >> the start of line 6, so we "reset" the starting point back to line 5. >> >> This is done by calling set_step_info in process_event_stop_test, in >> infrun.c. >> >> What we actually did though was whenever we were at an address that >> didn't exactly match a SAL (in the example above, marked LN=3D5, LN=3D6) >> we called set_step_info. This worked fine, at address 0x104 we reset >> back to LN=3D5, same at address 0x108. >> >> However, in the new world things can look different, for example, like >> this: >> >> 0x100 LN=3D5,STMT=3D1 >> 0x104 >> 0x108 LN=3D6,STMT=3D0 >> 0x10c LN=3D6,STMT=3D1 >> 0x110 >> 0x114 >> >> In this world, when we move forward to 0x100 we don't have a matching >> SAL, so we get the SAL for address 0x100. We can then safely call >> set_step_info like we did before, that's fine. But when we step to >> 0x108 we do now have a matching SAL, but we don't want to stop yet as >> this address is 'STMT=3D0'. However, if we call set_step_info then GDB >> is going to think we are stepping away from LN=3D6, and so will refuse >> to stop at address 0x10c. >> >> The proposal in this commit is that if we land at an address which >> doesn't specifically match a SAL, 0x104, 0x110, 0x114 in the above >> example, then we do call set_step_info, but otherwise we don't. >> >> There are going to be situations where the behaviour of GDB changes >> after this patch, but I don't think we can avoid that. What we had >> previously was just a heuristic. I think enabling this new >> information in GDB will allow us to do better overall, so I think we >> should make this change and fix any issues as they show up. >> >=20 > I agree with that, thanks for this explanation. >=20 > However, I think I found a small problem in this patch. > You can see it with the next-inline test case. > When you use just step the execution does not stop > between the inline functions, because not calling=20 >=20 > current behaviour is this: >=20 > Breakpoint 1, main () at next-inline.cc:63 > 63 get_alias_set (&xx); > (gdb) s > get_alias_set (t=3D0x404040 ) at next-inline.cc:50 > 50 if (t !=3D NULL > (gdb) s > 51 && TREE_TYPE (t).z !=3D 1 > (gdb) s > 0x0000000000401169 in tree_check (i=3D0, t=3D0x404040 ) at next-inlin= e.h:34 > 34 if (t->x !=3D i) > (gdb) s > 0x000000000040117d in tree_check (i=3D0, t=3D0x404040 ) at next-inlin= e.h:34 > 34 if (t->x !=3D i) > (gdb) s > 0x000000000040118f in tree_check (i=3D0, t=3D0x404040 ) at next-inlin= e.h:34 > 34 if (t->x !=3D i) > (gdb) s > main () at next-inline.cc:64 > 64 return 0; > (gdb)=20 >=20 > I debugged a bit because I was not sure why that happens, and it looks > like set_step_info does also set the current inline frame, but you > only want to suppress the line number not the currently executing > inline function. > With this small patch the step works as expected. >=20 Hmm, I think this got stuck, so I just worked a follow-up patch out for you. I also noticed that the test case cannot work with gcc before gcc-8, since the is_stmt feature is not implemented earlier, at least with gcc-4.8 and gcc-5.4 the test case fails. I thought it would be good to detect that by adding the -gstatement-frontie= rs option, so that the gcc driver complains when it is not able to generate sufficient debug info for that test. Thoughts? Bernd. --_002_AM6PR03MB517018CA7EE81453672EFDEFE4E20AM6PR03MB5170eurp_ Content-Type: text/x-patch; name="0001-Fix-next-inline-test-case-with-step.patch" Content-Description: 0001-Fix-next-inline-test-case-with-step.patch Content-Disposition: attachment; filename="0001-Fix-next-inline-test-case-with-step.patch"; size=4079; creation-date="Thu, 05 Mar 2020 18:01:44 GMT"; modification-date="Thu, 05 Mar 2020 18:01:44 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 5531 RnJvbSAzZjM5ZDA2OGUzMzg2YmEyMDRhNTk4ZmEzZDI5NDZkMzU3YjFkN2Iy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdl ciA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KRGF0ZTogRnJpLCAxNCBG ZWIgMjAyMCAyMDo0MTo1MSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBu ZXh0LWlubGluZSB0ZXN0IGNhc2Ugd2l0aCBzdGVwCgpTaG91bGQgc3RvcCBi ZXR3ZWVuIGlubGluZSBmdW5jdGlvbiBpbnZvY2F0aW9ucy4KCkFkZCAtZ3N0 YXRlbWVudC1mcm9udGllcnMgY29tcGlsZSBvcHRpb24gdG8gYXZvaWQKcnVu bmluZyB0ZXN0IHdpdGggZ2NjIHZlcnNpb24gdGhhdCBkb24ndCBzdXBwb3J0 CnRoaXMgZmVhdHVyZSwgd2hpY2ggd291bGQgZmFpbCB0aGUgdGVzdCB1bm5l Y2Vzc2FyaWx5LgpJbnN0ZWFkIG1ha2UgdGhlIGNvbXBpbGUgc3RlcCBmYWls IHdoaWNoIGlzIGxlc3Mgbm9pc3kuCgpBZGQgYSBwcmVmaXggdXNlX2hlYWRl ciAvIG5vX2hlYWRlciB0byBhbGwgdGVzdCBjYXNlcy4KCmdkYjoKMjAyMC0w My0wNSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdlckBob3RtYWls LmRlPgoKCSogaW5mcnVuLmMgKHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0KTog U2V0IHN0ZXBfZnJhbWVfaWQuCgpnZGIvdGVzdHN1aXRlOgoyMDIwLTAzLTA1 ICBCZXJuZCBFZGxpbmdlciAgPGJlcm5kLmVkbGluZ2VyQGhvdG1haWwuZGU+ CgoJKiBnZGIuY3AvbmV4dC1pbmxpbmUuZXhwOiBFeHRlbmQgdGVzdCBjYXNl LgotLS0KIGdkYi9pbmZydW4uYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICsrCiBnZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0LWlubGluZS5leHAg fCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDIg ZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwpp bmRleCA2YzM1ODA1Li5lODIyMWJhIDEwMDY0NAotLS0gYS9nZGIvaW5mcnVu LmMKKysrIGIvZ2RiL2luZnJ1bi5jCkBAIC03MjE5LDYgKzcyMTksOCBAQCBw cm9jZXNzX2V2ZW50X3N0b3BfdGVzdCAoc3RydWN0IGV4ZWN1dGlvbl9jb250 cm9sX3N0YXRlICplY3MpCiAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9s LnN0ZXBfcmFuZ2Vfc3RhcnQgPSBzdG9wX3BjX3NhbC5wYzsKICAgZWNzLT5l dmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQgPSBzdG9wX3Bj X3NhbC5lbmQ7CiAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLm1heV9y YW5nZV9zdGVwID0gMTsKKyAgZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wu c3RlcF9mcmFtZV9pZCA9IGdldF9mcmFtZV9pZCAoZnJhbWUpOworICBlY3Mt PmV2ZW50X3RocmVhZC0+Y29udHJvbC5zdGVwX3N0YWNrX2ZyYW1lX2lkID0g Z2V0X3N0YWNrX2ZyYW1lX2lkIChmcmFtZSk7CiAgIGlmIChyZWZyZXNoX3N0 ZXBfaW5mbykKICAgICBzZXRfc3RlcF9pbmZvIChmcmFtZSwgc3RvcF9wY19z YWwpOwogCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0 LWlubGluZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0LWlubGlu ZS5leHAKaW5kZXggMGIyYjIyZC4uZWMwNDY5NCAxMDA2NDQKLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dC1pbmxpbmUuZXhwCisrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL25leHQtaW5saW5lLmV4cApAQCAtMjAsMTIgKzIw LDE2IEBAIHN0YW5kYXJkX3Rlc3RmaWxlIC5jYwogcHJvYyBkb190ZXN0IHsg dXNlX2hlYWRlciB9IHsKICAgICBnbG9iYWwgc3JjZmlsZSB0ZXN0ZmlsZQog Ci0gICAgc2V0IG9wdGlvbnMge2MrKyBkZWJ1ZyBub3dhcm5pbmdzIG9wdGlt aXplPS1PMn0KKyAgICBzZXQgb3B0aW9ucyB7YysrIGRlYnVnIG5vd2Fybmlu Z3Mgb3B0aW1pemU9LU8yXCAtZ3N0YXRlbWVudC1mcm9udGllcnN9CiAgICAg aWYgeyAkdXNlX2hlYWRlciB9IHsKIAlsYXBwZW5kIG9wdGlvbnMgYWRkaXRp b25hbF9mbGFncz0tRFVTRV9ORVhUX0lOTElORV9ICiAJc2V0IGV4ZWN1dGFi bGUgIiR0ZXN0ZmlsZS13aXRoLWhlYWRlciIKKwlzZXQgaGRyZmlsZSAibmV4 dC1pbmxpbmUuaCIKKwlzZXQgcHJlZml4ICJ1c2VfaGVhZGVyIgogICAgIH0g ZWxzZSB7CiAJc2V0IGV4ZWN1dGFibGUgIiR0ZXN0ZmlsZS1uby1oZWFkZXIi CisJc2V0IGhkcmZpbGUgIiRzcmNmaWxlIgorCXNldCBwcmVmaXggIm5vX2hl YWRlciIKICAgICB9CiAKICAgICBpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICJmYWlsZWQgdG8gcHJlcGFyZSIgJGV4ZWN1dGFibGUgXApAQCAtMzMsNiAr MzcsOCBAQCBwcm9jIGRvX3Rlc3QgeyB1c2VfaGVhZGVyIH0gewogCXJldHVy biAtMQogICAgIH0KIAorICAgIHdpdGhfdGVzdF9wcmVmaXggJHByZWZpeCB7 CisKICAgICBpZiAhW3J1bnRvX21haW5dIHsKIAlmYWlsICJjYW4ndCBydW4g dG8gbWFpbiIKIAlyZXR1cm4KQEAgLTY0LDYgKzcwLDQzIEBAIHByb2MgZG9f dGVzdCB7IHVzZV9oZWFkZXIgfSB7CiAgICAgZ2RiX3Rlc3QgImJ0IiBcCiAJ IlxccypcXCMwXFxzKyhtYWlufGdldF9hbGlhc19zZXQpXFteXHJcXSoke3Ny Y2ZpbGV9Oi4qIiBcCiAJIm5vdCBpbiBpbmxpbmUgNSIKKworICAgIGlmIHsh JHVzZV9oZWFkZXJ9IHsKKyAgICAgICAgcmV0dXJuICN1bnRpbCB0aGF0IGlz IGZpeGVkCisgICAgfQorCisgICAgaWYgIVtydW50b19tYWluXSB7CisJZmFp bCAiY2FuJ3QgcnVuIHRvIG1haW4gcGFzcyAyIgorCXJldHVybgorICAgIH0K KworICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK21haW4uKiIgImlu IG1haW4gcGFzcyAyIgorICAgIGdkYl90ZXN0ICJzdGVwIiAiLioiICJzdGVw IGludG8gZ2V0X2FsaWFzX3NldCBwYXNzIDIiCisgICAgZ2RiX3Rlc3QgImJ0 IiAiXFxzKlxcIzBcXHMrZ2V0X2FsaWFzX3NldFxbXlxyXF0qJHtzcmNmaWxl fTouKiIgXAorCSJpbiBnZXRfYWxpYXNfc2V0IHBhc3MgMiIKKyAgICBnZGJf dGVzdCAic3RlcCIgIi4qVFJFRV9UWVBFLioiICJzdGVwIDEiCisgICAgZ2Ri X3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMrZ2V0X2FsaWFzX3NldFxbXlxyXF0q JHtzcmNmaWxlfTouKiIgXAorCSJub3QgaW4gaW5saW5lIDEgcGFzcyAyIgor ICAgIGdkYl90ZXN0ICJzdGVwIiAiLippZiBcXCh0LT54ICE9IGlcXCkuKiIg InN0ZXAgMiIKKyAgICBnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytcW15c clxdKnRyZWVfY2hlY2tcW15cclxdKiR7aGRyZmlsZX06LioiIFwKKwkiaW4g aW5saW5lIDEgcGFzcyAyIgorICAgIGdkYl90ZXN0ICJzdGVwIiAiLipUUkVF X1RZUEUuKiIgInN0ZXAgMyIKKyAgICBnZGJfdGVzdCAiYnQiICJcXHMqXFwj MFxccytnZXRfYWxpYXNfc2V0XFteXHJcXSoke3NyY2ZpbGV9Oi4qIiBcCisJ Im5vdCBpbiBpbmxpbmUgMiBwYXNzIDIiCisgICAgZ2RiX3Rlc3QgInN0ZXAi ICIuKmlmIFxcKHQtPnggIT0gaVxcKS4qIiAic3RlcCA0IgorICAgIGdkYl90 ZXN0ICJidCIgIlxccypcXCMwXFxzK1xbXlxyXF0qdHJlZV9jaGVja1xbXlxy XF0qJHtoZHJmaWxlfTouKiIgXAorCSJpbiBpbmxpbmUgMiBwYXNzIDIiCisg ICAgZ2RiX3Rlc3QgInN0ZXAiICIuKlRSRUVfVFlQRS4qIiAic3RlcCA1Igor ICAgIGdkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2dldF9hbGlhc19zZXRc W15cclxdKiR7c3JjZmlsZX06LioiIFwKKwkibm90IGluIGlubGluZSAzIHBh c3MgMiIKKyAgICBnZGJfdGVzdCAic3RlcCIgIi4qaWYgXFwodC0+eCAhPSBp XFwpLioiICJzdGVwIDYiCisgICAgZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBc XHMrXFteXHJcXSp0cmVlX2NoZWNrXFteXHJcXSoke2hkcmZpbGV9Oi4qIiBc CisJImluIGlubGluZSAzIHBhc3MgMiIKKyAgICBnZGJfdGVzdCAic3RlcCIg InJldHVybiAwLioiICJzdGVwIDciCisgICAgZ2RiX3Rlc3QgImJ0IiBcCisJ IlxccypcXCMwXFxzKyhtYWlufGdldF9hbGlhc19zZXQpXFteXHJcXSoke3Ny Y2ZpbGV9Oi4qIiBcCisJIm5vdCBpbiBpbmxpbmUgNCBwYXNzIDIiCisgICAg fQogfQogCiBkb190ZXN0IDAKLS0gCjEuOS4xCgo= --_002_AM6PR03MB517018CA7EE81453672EFDEFE4E20AM6PR03MB5170eurp_--