From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27076 invoked by alias); 28 Dec 2019 08:40: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 27058 invoked by uid 89); 28 Dec 2019 08:40:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=explanation, Today, referred, Sep X-HELO: EUR05-DB8-obe.outbound.protection.outlook.com Received: from mail-db8eur05olkn2030.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) (40.92.89.30) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 28 Dec 2019 08:40:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FcyNt6p/KI56SVQK782jdvXB36sBNrkfM032Xn+zq+azmVl+UEAvXZ2lNoTIEASm7/G6irVgRi3jeI9Ogs55ySi/BiGaDn589MNvJosa90tuf1DAZUfqCfQCcD7+zptNjdK+W9+Ecu09FY6gXc9qs4jtFyI4KrrkG4z6q4iOL2713FS9+WIxQzIjI1eWsZ2tJaOPknFsWdWVtO8d2Y8o/olDK7LBFvZhSN1QREPTc0LSfEozWG0IbzzfhLfly8GPipfVQPEmsZhhMJi5kIYCuS43lwF3DLEHB9K5sa3lub15DpDb0dD80B8Ls04k7WvnLIczr1Pgd+Fo5max1Ym6gA== 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=EzEUv66dMVGZ1CT+IDu7dxGpM3vb5A/0LMXHF6RKAn4=; b=CXp3EF+48VJgK2rOQipXRYXMACBj84te6nbKFsEQQ1fX2AeIL8LW/351oKziFiQQtGDgwVMu5BwVnv1w4A7p2G2BVTj5T+mxobFDw+T39kUlJTPEZsq6ze4LFMTNr37+AgsJ9cPhhMk0gIVxOdnvBLgrJtHLTciET+77+pqzHpE2ltgj8PfXe9g6Mbr/4eyNlzFOpkokyC6dzII0K1uNCWSzqbtrOTjn2i/llgDFnJCrJqt6RcaGOonV+Tn3sCwg4/XEb2wIar4BM/pXjfqGVPfXxS6OLD6w87y6ZVFw4/D+kkGcayYXjEAyE9O4wZMHF62IMU3hRDcIY2/emv8ZcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DB8EUR05FT060.eop-eur05.prod.protection.outlook.com (10.233.238.57) by DB8EUR05HT021.eop-eur05.prod.protection.outlook.com (10.233.238.194) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11; Sat, 28 Dec 2019 08:40:44 +0000 Received: from AM0PR08MB3714.eurprd08.prod.outlook.com (10.233.238.58) by DB8EUR05FT060.mail.protection.outlook.com (10.233.238.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Sat, 28 Dec 2019 08:40:44 +0000 Received: from AM0PR08MB3714.eurprd08.prod.outlook.com ([fe80::8dd1:fb18:6271:f769]) by AM0PR08MB3714.eurprd08.prod.outlook.com ([fe80::8dd1:fb18:6271:f769%7]) with mapi id 15.20.2581.007; Sat, 28 Dec 2019 08:40:44 +0000 Received: from [192.168.1.101] (146.60.252.106) by ZRAP278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Sat, 28 Dec 2019 08:40:43 +0000 From: Bernd Edlinger To: Simon Marchi , "gdb-patches@sourceware.org" CC: Tom Tromey Subject: Re: [PATCH] Fix an issue with the gdb step-over aka. "n" command Date: Sat, 28 Dec 2019 08:40:00 -0000 Message-ID: References: In-Reply-To: x-microsoft-original-message-id: x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_003_AM0PR08MB37142BC0D34B9B3605D37034E4250AM0PR08MB3714eurp_" MIME-Version: 1.0 X-SW-Source: 2019-12/txt/msg01052.txt.bz2 --_003_AM0PR08MB37142BC0D34B9B3605D37034E4250AM0PR08MB3714eurp_ Content-Type: text/plain; charset="Windows-1252" Content-ID: <9CB1678F3596F24FA29EEA69D2A1C3F0@eurprd08.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 3743 On 12/20/19 7:13 AM, Simon Marchi wrote: > Hi Bernd, >=20 > On 2019-12-19 5:53 p.m., Bernd Edlinger wrote: >> Does this explanation make sense? >=20 > Yes. Well I think so, I have to admit this is a bit over my head, > there are a lot of pieces to put together to have a good understanding > of the problem. I just did a first read, I'll sleep on it and come > back to it later. >=20 > Thanks for the small reproducer, this is extremely valuable. I think it > will be a good idea to integrate it as a test case in the test suite. >=20 > In your patch to dwarf2read.c, I was a bit surprised to see: >=20 > m_last_subfile !=3D m_cu->get_builder ()->get_current_subfile () >=20 > So your fix only works if the inlined subroutine comes from another file?= If > I move the tree_check function in next-inline.cc, the fix no longer appli= es, > and we get the broken behavior. From your previous email, I understand t= hat > this is expected. I guess that if both are in the same file, we can't de= tect > this situation using the same technique. >=20 > I also read about location views, since that's what Alexandre referred to= . It > sounds like it's a magic solution that will allow GDB to do the right thi= ng in > this kind of situation. If that's indeed the case, then it might be good= to start > exploring this path. I'd like to have a better understanding of how this= will help > GDB make a smarter "next", and what kind of effort is needed to make GDB = use it. My > understanding is that location views allow having an address mapped to mu= ltiple > source locations. For example, here's the problematic address in the nex= t-inline > test case I've compiled: >=20 > ./next-inline.h:[++] > next-inline.h 28 0x1175 = x > next-inline.h 30 0x1175 = 1 x >=20 > ./next-inline.cc:[++] > next-inline.cc 22 0x1175 = 2 >=20 > Today, when I ask GDB "which source line does this address correspond to"= , it gives me > one answer. Does this mean that GDB will now say that 0x1175 corresponds= to >=20 > - next-inline.h:28 > - next-inline.h:30 > - next-inline.cc:22 >=20 > all at the same time? Is one of these source locations more important th= an the others? > If execution happens to stop exactly at this address, which location do w= e present to > the user? >=20 > And to come back the problem at hand, how does this help GDB make a smart= er "next"? >=20 > Btw, I stumbled on a bug with the TUI source display. It might be caused= by this patch, > or it might be that this patch uncovers it. >=20 > When I do these actions: >=20 > - Start GDB with the next-inline test file (from this patch) > - Enable the TUI > - Type "start" > - Type "s" > - Type "n" twice >=20 > The TUI source display wrongfully jumps to the header file, line 24. > When I type "frame", it says I'm stopped at next-line.cc:24. So it > is showing the right line number of the wrong file. >=20 I think meanwhile the display bug in the TUI window is fixed (by one of Tom= Tromey's recent patches), could you please check again? I post both parts of the patch again for your reference here, and add a Cha= ngeLog which I forgot previously: gdb: 2019-12-28 Bernd Edlinger * dwarf2read.c (lnp_state_machine): New member m_last_address. (lnp_state_machine::record_line): After a file changes or end sequence always assume a statement boundary. gdb/testsuite: 2019-12-28 Bernd Edlinger * gdb.cp/next-inline.exp: New file. * gdb.cp/next-inline.cc: New file. * gdb.cp/next-inline.h: New file. Thanks Bernd. --_003_AM0PR08MB37142BC0D34B9B3605D37034E4250AM0PR08MB3714eurp_ 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=2273; creation-date="Sat, 28 Dec 2019 08:40:44 GMT"; modification-date="Sat, 28 Dec 2019 08:40:44 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 3083 RnJvbSA2M2MwMDUzZDBjMmJmOWVjOGZmYmNiMDY3MTJmZThhYTI0M2MzMmZj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdl ciA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KRGF0ZTogU2F0LCAyMyBO b3YgMjAxOSAyMDo1OToyNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBG aXggYW4gaXNzdWUgd2l0aCB0aGUgZ2RiIHN0ZXAtb3ZlciBha2EuICJuIiBj b21tYW5kCgpXaGVuIGRlYnVnZ2luZyBvcHRpbWl6ZWQgY29kZSB3aXRoIGlu bGluZWQgZnVuY3Rpb25zIGJ1aWx0CndpdGggLWdzdGF0ZW1lbnQtZnJvbnRp ZXJzIGRlYnVnIGluZm8sIGl0IG1heSBoYXBwZW4gdGhhdAphbiBpbmxpbmUg ZnVuY3Rpb24gaGFzIGEgbGluZSBsb2NhdGlvbiBleGFjdGx5IGF0IHRoZQpl bmQgb2YgYSBibG9jayB3aGljaCBoYXMgdGhlIGlzX3N0bXQgYXR0cmlidXRl IHNldCwgZm9sbG93ZWQKYnkgYSBsb2NhdGlvbiBpbmZvIHdoaWNoIGlzIGF0 IHRoZSBjYWxsIHNpdGUgYnV0IGhhcyB0aGUKaXNfc3RtdCBhdHRyaWJ1dGUg Y2xlYXJlZCBhbmQgaXMgdGhlcmVmb3JlIGlnbm9yZWQuCgpUaGUgdmlzdWFs IGVmZmVjdCBpcyB0aGF0ICJuIiBkb2VzIHNvbWV0aW1lcyBub3Qgc3RlcCBv dmVyCnRoZSBpbmxpbmVkIGZ1bmN0aW9uIGJ1dCBpbnN0ZWFkIGp1bXBzIHRv IHRoZSBsYXN0IGxpbmUgb2YKdGhlIGlubGluZSBmdW5jdGlvbiwgYnV0IHRo ZSBpbmxpbmUgZnVuY3Rpb24gaGFzIGFscmVhZHkKcmV0dXJuZWQsIGhlbmNl IHRoZSBsaW5lIG51bWJlciBpbmZvcm1hdGlvbiBpcyBpbmNvbnNpc3RlbnQK YXQgdGhpcyBwb2ludC4KClRoaXMgcGF0Y2ggZGV0ZWN0cyBhIGlzX3N0bXQg bG9jYXRpb24gaW5mbyBmb2xsb3dlZCBieQphIGxvY2F0aW9uIGluZm8gaW4g YSBkaWZmZXJlbnQgZmlsZSBhdCB0aGUgc2FtZSBhZGRyZXNzLApidXQgd2l0 aG91dCBpc19zdG10IGxvY2F0aW9uIHNldCwgYW5kIGZvcmNlcyB0aGUgc2Vj b25kCmxvY2F0aW9uIGluZm8gdG8gcmVwbGFjZSB0aGUgcHJldmlvdXMgb25l LgotLS0KIGdkYi9kd2FyZjJyZWFkLmMgfCA3ICsrKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwpp bmRleCA4MTlkMzdjLi4yZjlhMTgxIDEwMDY0NAotLS0gYS9nZGIvZHdhcmYy cmVhZC5jCisrKyBiL2dkYi9kd2FyZjJyZWFkLmMKQEAgLTIxMTQ4LDYgKzIx MTQ4LDcgQEAgcHJpdmF0ZToKICAgICAgZXhhbXBsZSwgd2hlbiBkaXNjcmlt aW5hdG9ycyBhcmUgcHJlc2VudC4gIFBSIDE3Mjc2LiAgKi8KICAgdW5zaWdu ZWQgaW50IG1fbGFzdF9saW5lID0gMDsKICAgYm9vbCBtX2xpbmVfaGFzX25v bl96ZXJvX2Rpc2NyaW1pbmF0b3IgPSBmYWxzZTsKKyAgQ09SRV9BRERSIG1f bGFzdF9hZGRyZXNzID0gKENPUkVfQUREUikgLTE7CiB9OwogCiB2b2lkCkBA IC0yMTMzMCw3ICsyMTMzMSwxMCBAQCBsbnBfc3RhdGVfbWFjaGluZTo6cmVj b3JkX2xpbmUgKGJvb2wgZW5kX3NlcXVlbmNlKQogICBlbHNlIGlmIChtX29w X2luZGV4ID09IDAgfHwgZW5kX3NlcXVlbmNlKQogICAgIHsKICAgICAgIGZl LT5pbmNsdWRlZF9wID0gMTsKLSAgICAgIGlmIChtX3JlY29yZF9saW5lc19w ICYmIChwcm9kdWNlcl9pc19jb2Rld2FycmlvciAobV9jdSkgfHwgbV9pc19z dG10KSkKKyAgICAgIGlmIChtX3JlY29yZF9saW5lc19wCisJICAmJiAocHJv ZHVjZXJfaXNfY29kZXdhcnJpb3IgKG1fY3UpIHx8IG1faXNfc3RtdCB8fCBl bmRfc2VxdWVuY2UKKwkgICAgICB8fCAobV9sYXN0X3N1YmZpbGUgIT0gbV9j dS0+Z2V0X2J1aWxkZXIgKCktPmdldF9jdXJyZW50X3N1YmZpbGUgKCkKKwkJ ICAmJiBtX2xhc3RfYWRkcmVzcyA9PSBtX2FkZHJlc3MpKSkKIAl7CiAJICBp ZiAobV9sYXN0X3N1YmZpbGUgIT0gbV9jdS0+Z2V0X2J1aWxkZXIgKCktPmdl dF9jdXJyZW50X3N1YmZpbGUgKCkKIAkgICAgICB8fCBlbmRfc2VxdWVuY2Up CkBAIC0yMTM1Myw2ICsyMTM1Nyw3IEBAIGxucF9zdGF0ZV9tYWNoaW5lOjpy ZWNvcmRfbGluZSAoYm9vbCBlbmRfc2VxdWVuY2UpCiAJCX0KIAkgICAgICBt X2xhc3Rfc3ViZmlsZSA9IG1fY3UtPmdldF9idWlsZGVyICgpLT5nZXRfY3Vy cmVudF9zdWJmaWxlICgpOwogCSAgICAgIG1fbGFzdF9saW5lID0gbV9saW5l OworCSAgICAgIG1fbGFzdF9hZGRyZXNzID0gbV9hZGRyZXNzOwogCSAgICB9 CiAJfQogICAgIH0KLS0gCjEuOS4xCgo= --_003_AM0PR08MB37142BC0D34B9B3605D37034E4250AM0PR08MB3714eurp_ Content-Type: text/x-patch; name="0002-Add-a-test-case-for-step-over-inline-functions.patch" Content-Description: 0002-Add-a-test-case-for-step-over-inline-functions.patch Content-Disposition: attachment; filename="0002-Add-a-test-case-for-step-over-inline-functions.patch"; size=4912; creation-date="Sat, 28 Dec 2019 08:40:44 GMT"; modification-date="Sat, 28 Dec 2019 08:40:44 GMT" Content-ID: <2E711D0F44D6AD4388DEB96B71336201@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 6662 RnJvbSA5NWJhNDc4MDQ4OGI1MzEwNGVhNTFjYzA3MDJmOTlhOWE4MDA5ODRi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdl ciA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KRGF0ZTogVGh1LCAxOSBE ZWMgMjAxOSAyMzo0MTozNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBB ZGQgYSB0ZXN0IGNhc2UgZm9yIHN0ZXAgb3ZlciBpbmxpbmUgZnVuY3Rpb25z CgotLS0KIGdkYi90ZXN0c3VpdGUvZ2RiLmNwL25leHQtaW5saW5lLmNjICB8 IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGdkYi90ZXN0 c3VpdGUvZ2RiLmNwL25leHQtaW5saW5lLmV4cCB8IDM5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbmV4dC1pbmxpbmUuaCAgIHwgMzQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmNwL25l eHQtaW5saW5lLmNjCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvbmV4dC1pbmxpbmUuZXhwCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dC1pbmxpbmUuaAoKZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25leHQtaW5saW5lLmNjIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dC1pbmxpbmUuY2MKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNmNWFiOQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25leHQtaW5saW5lLmNjCkBA IC0wLDAgKzEsMzQgQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAyMDE5IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSAibmV4dC1pbmxpbmUuaCIKKwor aW50IF9fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkKK2dldF9h bGlhc19zZXQgKHRyZWUgKnQpCit7IGlmICh0ICE9IE5VTEwKKyAgICAgICYm IFRSRUVfVFlQRSAodCkueiAhPSAxCisgICAgICAmJiBUUkVFX1RZUEUgKHQp LnogIT0gMgorICAgICAgJiYgVFJFRV9UWVBFICh0KS56ICE9IDMpCisgICAg cmV0dXJuIDA7CisgIHJldHVybiAxOworfQorCit0cmVlIHh4OworaW50IG1h aW4oKQoreyBnZXRfYWxpYXNfc2V0KCZ4eCk7CisgIGFib3J0KCk7Cit9CmRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0LWlubGluZS5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0LWlubGluZS5leHAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhZGM4YwotLS0g L2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25leHQtaW5s aW5lLmV4cApAQCAtMCwwICsxLDM5IEBACisjICAgQ29weXJpZ2h0IDIwMTkg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisKK3N0YW5kYXJkX3Rlc3RmaWxlCisKK2lmIHsgW3ByZXBhcmVfZm9y X3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAibmV4dC1pbmxpbmUiIFwK KwkJCSAge25leHQtaW5saW5lLmNjfSBcCisJCQkgIHtkZWJ1ZyBub3dhcm5p bmdzIG9wdGltaXplPS1PMn1dIH0geworICAgIHJldHVybiAtMQorfQorCitp ZiAhW3J1bnRvX21haW5dIHsKKyAgICBmYWlsICJjYW4ndCBydW4gdG8gbWFp biIKKyAgICByZXR1cm4KK30KKworZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBc XHMrbWFpbi4qIiAiaW4gbWFpbiIKK2dkYl90ZXN0ICJzdGVwIiAiLioiICJz dGVwIGludG8gZ2V0X2FsaWFzX3NldCIKK2dkYl90ZXN0ICJidCIgIlxccypc XCMwXFxzK1xbXlxyXF0qbmV4dC1pbmxpbmVcXC5jYzouKiIgIm5vdCBpbiBp bmxpbmUiCitnZGJfdGVzdCAibmV4dCIgIi4qIiAibmV4dCBzdGVwIDEiCitn ZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytcW15cclxdKm5leHQtaW5saW5l XFwuY2M6LioiICJub3QgaW4gaW5saW5lIDEiCitnZGJfdGVzdCAibmV4dCIg Ii4qIiAibmV4dCBzdGVwIDIiCitnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxc cytcW15cclxdKm5leHQtaW5saW5lXFwuY2M6LioiICJub3QgaW4gaW5saW5l IDIiCitnZGJfdGVzdCAibmV4dCIgIi4qIiAibmV4dCBzdGVwIDMiCitnZGJf dGVzdCAiYnQiICJcXHMqXFwjMFxccytcW15cclxdKm5leHQtaW5saW5lXFwu Y2M6LioiICJub3QgaW4gaW5saW5lIDMiCitnZGJfdGVzdCAibmV4dCIgIi4q IiAibmV4dCBzdGVwIDQiCitnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccytc W15cclxdKm5leHQtaW5saW5lXFwuY2M6LioiICJub3QgaW4gaW5saW5lIDQi CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0LWlubGlu ZS5oIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dC1pbmxpbmUuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWZiMWIyCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dC1pbmxp bmUuaApAQCAtMCwwICsxLDM0IEBACisvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQg MjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgor CitzdHJ1Y3QgdHJlZXsKKyAgdm9sYXRpbGUgaW50IHg7CisgIHZvbGF0aWxl IGludCB6OworfTsKKworI2RlZmluZSBUUkVFX1RZUEUoTk9ERSkgKCp0cmVl X2NoZWNrIChOT0RFLCAwKSkKKworaW5saW5lIHRyZWUgKgordHJlZV9jaGVj ayAodHJlZSAqdCwgaW50IGkpCit7CisgIGlmICh0LT54ICE9IGkpCisgICAg YWJvcnQoKTsKKyAgdHJlZSAqeCA9IHQ7CisgIHJldHVybiB4OworfQotLSAK MS45LjEKCg== --_003_AM0PR08MB37142BC0D34B9B3605D37034E4250AM0PR08MB3714eurp_--