From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by sourceware.org (Postfix) with ESMTPS id C31EB3857030 for ; Sat, 19 Sep 2020 00:30:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C31EB3857030 Received: by mail-il1-x141.google.com with SMTP id a19so8037354ilq.10 for ; Fri, 18 Sep 2020 17:30:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0UYYkKgg+Z8J0RHzI2zWHOsVeMtIAYqKqpdypFxWplc=; b=NNmtWuIVveXC89pLYimxT/mcQPmC4sPoMiWVHy0SdEh9KesnIviv/k5dcWBdrHq4dL OLWBMNUWVusxsQPTmX1+HeWDfu8qBIVmGprdgrazk+c6lYRLvj/HyaLww1nKlso32kEv iiPcfCsBjR7qvzbH/os6mjbgrh1fdSaO6/KYEtinp6lOfpT6SS3+Rm+LUYUwoUOd/ILn vrykpKhH2k9FSoFxv6qU0Tu/O5PSZ0Ue+WusG44DM+5SJvM6FKl+1cELxb4KYoI2HXVH UiZnVjWYutitTCx99c3PCdP7dIFF4FZql2tU6kuMRIpoXWRfuAM7UzBaI7sZjiSVQwhF eZ1w== X-Gm-Message-State: AOAM532szEuTstIMrTXcnI/w6iuG59y4WQLVC6DjXJWWcRKIswBTJqYL UPHWecm/hqbbHdDtvwf643z+1BaGTjbMwdisivQ= X-Google-Smtp-Source: ABdhPJw8RRL+0Ry8JHwcV+UArtlQ6GIztSERaW8kMPZtgCy871guS00T/k06QGTrf+jRvQAt8bnEqZnYe5PJWy298lc= X-Received: by 2002:a92:c882:: with SMTP id w2mr9274868ilo.151.1600475401168; Fri, 18 Sep 2020 17:30:01 -0700 (PDT) MIME-Version: 1.0 References: <0cc93067-1313-6434-4330-61a21736376f@simark.ca> <20200624012857.31849-1-vcollod@nvidia.com> <20200624012857.31849-2-vcollod@nvidia.com> <05f26b4d-5d2c-3dec-c129-61efc2ed7d1c@simark.ca> In-Reply-To: <05f26b4d-5d2c-3dec-c129-61efc2ed7d1c@simark.ca> From: "H.J. Lu" Date: Fri, 18 Sep 2020 17:29:25 -0700 Message-ID: Subject: [PATCH] gdb: Update i386_analyze_prologue to skip endbr32 To: Simon Marchi Cc: Victor Collod , GDB Content-Type: multipart/mixed; boundary="000000000000c24e2b05af9fb784" X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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, 19 Sep 2020 00:30:03 -0000 --000000000000c24e2b05af9fb784 Content-Type: text/plain; charset="UTF-8" On Thu, Aug 6, 2020 at 6:59 AM Simon Marchi wrote: > > On 2020-06-23 9:28 p.m., Victor Collod via Gdb-patches wrote: > > 2020-06-11 Victor Collod > > > > Please write a commit message that explains the change. Imagine that you are > talking to somebody already somewhat knowledgeable about the subject matter, but > who doesn't know what you are working on or the problem you are trying to fix > (this will be the case for most people trying to understand this patch in the > future, if they git-blame this code). So you don't to go in details explaining > what prologue skipping is, for example, but you need to explain what triggered > you to write this patch. What didn't work, what's the bug, what is the impact > of the bug, how do you fix it? And since it's relevant to this patch, how do > modify / improve the testsuite to make sure this gets tested? > > Since this was already explained in commit ac4a4f1cd7dc ("gdb: handle endbr64 > instruction in amd64_analyze_prologue"), you can always refer to this commit > and say that you are fixing the same bug, but for i386 instead of amd64. > > When referring to another commit, always include both the sha1 and the subject/title. > > The Linux kernel way of doing it [1] is fine. > > [1] https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html > > > gdb/ChangeLog: > > > > * i386-tdep.c (i386_skip_endbr): Add a helper function to skip endbr. > > (i386_analyze_prologue): Call i386_skip_endbr. > > > > gdb/testsuite/ChangeLog: > > > > * gdb.arch/amd64-prologue-skip-cf-protection.exp: Make the test > > compatible with i386, and move it to... > > * gdb.arch/i386-prologue-skip-cf-protection.exp: ... here. > > * gdb.arch/amd64-prologue-skip-cf-protection.c: Move to... > > * gdb.arch/i386-prologue-skip-cf-protection.c: ... here. > > --- > > gdb/i386-tdep.c | 19 +++++++++++++++++++ > > ...n.c => i386-prologue-skip-cf-protection.c} | 0 > > ...p => i386-prologue-skip-cf-protection.exp} | 2 +- > > 3 files changed, 20 insertions(+), 1 deletion(-) > > rename gdb/testsuite/gdb.arch/{amd64-prologue-skip-cf-protection.c => i386-prologue-skip-cf-protection.c} (100%) > > rename gdb/testsuite/gdb.arch/{amd64-prologue-skip-cf-protection.exp => i386-prologue-skip-cf-protection.exp} (97%) > > > > diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c > > index 9b905c1996a..263a3fd452e 100644 > > --- a/gdb/i386-tdep.c > > +++ b/gdb/i386-tdep.c > > @@ -1537,6 +1537,24 @@ struct i386_insn i386_frame_setup_skip_insns[] = > > { 0 } > > }; > > > > +/* Check whether PC points to an endbr32 instruction. */ > > +static CORE_ADDR > > +i386_skip_endbr (CORE_ADDR pc) > > +{ > > + static const gdb_byte endbr32[] = { 0xf3, 0x0f, 0x1e, 0xfb }; > > + > > + gdb_byte buf[sizeof (endbr32)]; > > + > > + /* Stop there if we can't read the code */ > > + if (target_read_code (pc, buf, sizeof (endbr32))) > > Compare explicitly with `!= 0`. > > In the test, please update the comment on top of the file. Where it talks about the endbr64 > instruction, it should now say: `endbr32` / `endbr64`. > I updated Victor's patch to fix: https://sourceware.org/bugzilla/show_bug.cgi?id=26635 OK for master? Thanks. -- H.J. --000000000000c24e2b05af9fb784 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-gdb-Update-i386_analyze_prologue-to-skip-endbr32.patch" Content-Disposition: attachment; filename="0001-gdb-Update-i386_analyze_prologue-to-skip-endbr32.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kf8xo5480 RnJvbSA5NWE3NzE1YTBlMDg1Y2JiYWZmMzNkOTI5MTY0N2Q1MjQ5YTU1Yjc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWN0b3IgQ29sbG9kIDx2Y29sbG9kQG52aWRpYS5jb20+CkRh dGU6IFR1ZSwgMjMgSnVuIDIwMjAgMTg6Mjg6NTEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBnZGI6 IFVwZGF0ZSBpMzg2X2FuYWx5emVfcHJvbG9ndWUgdG8gc2tpcCBlbmRicjMyCgpXaXRoIC1tMzIg LWZjZi1wcm90ZWN0aW9uLCBHQ0MgZ2VuZXJhdGVzIGFuIGBlbmRicjMyYCBpbnN0cnVjdGlvbiBh dCB0aGUKZnVuY3Rpb24gZW50cnk6CgpbaGpsQGdudS1jZmwtMiBnZGJdJCBjYXQgL3RtcC94LmMK aW50Cm1haW4odm9pZCkKewogIHJldHVybiAwOwp9CltoamxAZ251LWNmbC0yIGdkYl0kIGdjYyAt ZyAtZmNmLXByb3RlY3Rpb24gL3RtcC94LmMgLW0zMgooZ2RiKSBiIG1haW4KQnJlYWtwb2ludCAx IGF0IDB4ODA0OTE3NjogZmlsZSAvdG1wL3guYywgbGluZSAzLgooZ2RiKSByCkJyZWFrcG9pbnQg MSwgbWFpbiAoKSBhdCAvdG1wL3guYzozCjMJewooZ2RiKSBkaXNhc3MKRHVtcCBvZiBhc3NlbWJs ZXIgY29kZSBmb3IgZnVuY3Rpb24gbWFpbjoKPT4gMHgwODA0OTE3NiA8KzA+OgllbmRicjMyCiAg IDB4MDgwNDkxN2EgPCs0PjoJcHVzaCAgICVlYnAKICAgMHgwODA0OTE3YiA8KzU+Ogltb3YgICAg JWVzcCwlZWJwCiAgIDB4MDgwNDkxN2QgPCs3PjoJbW92ICAgICQweDAsJWVheAogICAweDA4MDQ5 MTgyIDwrMTI+Oglwb3AgICAgJWVicAogICAweDA4MDQ5MTgzIDwrMTM+OglyZXQKRW5kIG9mIGFz c2VtYmxlciBkdW1wLgooZ2RiKQoKVXBkYXRlIGkzODZfYW5hbHl6ZV9wcm9sb2d1ZSB0byBza2lw IGBlbmRicjMyYDoKCihnZGIpIGIgbWFpbgpCcmVha3BvaW50IDEgYXQgMHg4MDQ5MTdkOiBmaWxl IC90bXAveC5jLCBsaW5lIDQuCihnZGIpIHIKQnJlYWtwb2ludCAxLCBtYWluICgpIGF0IC90bXAv eC5jOjQKNAkgIHJldHVybiAwOwooZ2RiKSBkaXNhc3MKRHVtcCBvZiBhc3NlbWJsZXIgY29kZSBm b3IgZnVuY3Rpb24gbWFpbjoKICAgMHgwODA0OTE3NiA8KzA+OgllbmRicjMyCiAgIDB4MDgwNDkx N2EgPCs0PjoJcHVzaCAgICVlYnAKICAgMHgwODA0OTE3YiA8KzU+Ogltb3YgICAgJWVzcCwlZWJw Cj0+IDB4MDgwNDkxN2QgPCs3PjoJbW92ICAgICQweDAsJWVheAogICAweDA4MDQ5MTgyIDwrMTI+ Oglwb3AgICAgJWVicAogICAweDA4MDQ5MTgzIDwrMTM+OglyZXQKRW5kIG9mIGFzc2VtYmxlciBk dW1wLgooZ2RiKQoKVGVzdGVkIHdpdGgKCiQgbWFrZSBjaGVjayBSVU5URVNURkxBR1M9Ii0tdGFy Z2V0X2JvYXJkPSd1bml4ey1tMzIsfScgaTM4Ni1wcm9sb2d1ZS1za2lwLWNmLXByb3RlY3Rpb24u ZXhwIgoKb24gRmVkb3JhIDMyL3g4Ni02NC4KCjIwMjAtMFgtWVkgIFZpY3RvciBDb2xsb2QgIDx2 Y29sbG9kQG52aWRpYS5jb20+CgpnZGIvQ2hhbmdlTG9nOgoKCVBSIGdkYi8yNjYzNQoJKiBpMzg2 LXRkZXAuYyAoaTM4Nl9za2lwX2VuZGJyKTogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHNraXAg ZW5kYnIuCgkoaTM4Nl9hbmFseXplX3Byb2xvZ3VlKTogQ2FsbCBpMzg2X3NraXBfZW5kYnIuCgpn ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCglQUiBnZGIvMjY2MzUKCSogZ2RiLmFyY2gvYW1kNjQt cHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cDogTWFrZSB0aGUgdGVzdAoJY29tcGF0aWJs ZSB3aXRoIGkzODYsIGFuZCBtb3ZlIGl0IHRvLi4uCgkqIGdkYi5hcmNoL2kzODYtcHJvbG9ndWUt c2tpcC1jZi1wcm90ZWN0aW9uLmV4cDogLi4uIGhlcmUuCgkqIGdkYi5hcmNoL2FtZDY0LXByb2xv Z3VlLXNraXAtY2YtcHJvdGVjdGlvbi5jOiBNb3ZlIHRvLi4uCgkqIGdkYi5hcmNoL2kzODYtcHJv bG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmM6IC4uLiBoZXJlLgotLS0KIGdkYi9pMzg2LXRkZXAu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysrKysK IC4uLm4uYyA9PiBpMzg2LXByb2xvZ3VlLXNraXAtY2YtcHJvdGVjdGlvbi5jfSB8ICAwCiAuLi5w ID0+IGkzODYtcHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cH0gfCAgNiArKystLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIHJlbmFtZSBn ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3thbWQ2NC1wcm9sb2d1ZS1za2lwLWNmLXByb3RlY3Rpb24u YyA9PiBpMzg2LXByb2xvZ3VlLXNraXAtY2YtcHJvdGVjdGlvbi5jfSAoMTAwJSkKIHJlbmFtZSBn ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3thbWQ2NC1wcm9sb2d1ZS1za2lwLWNmLXByb3RlY3Rpb24u ZXhwID0+IGkzODYtcHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cH0gKDkwJSkKCmRpZmYg LS1naXQgYS9nZGIvaTM4Ni10ZGVwLmMgYi9nZGIvaTM4Ni10ZGVwLmMKaW5kZXggOTVjZmU1Yjgy MGUuLmI0ODVmMGIyOTZhIDEwMDY0NAotLS0gYS9nZGIvaTM4Ni10ZGVwLmMKKysrIGIvZ2RiL2kz ODYtdGRlcC5jCkBAIC0xNTM4LDYgKzE1MzgsMjQgQEAgc3RydWN0IGkzODZfaW5zbiBpMzg2X2Zy YW1lX3NldHVwX3NraXBfaW5zbnNbXSA9CiAgIHsgMCB9CiB9OwogCisvKiBDaGVjayB3aGV0aGVy IFBDIHBvaW50cyB0byBhbiBlbmRicjMyIGluc3RydWN0aW9uLiAgKi8KK3N0YXRpYyBDT1JFX0FE RFIKK2kzODZfc2tpcF9lbmRiciAoQ09SRV9BRERSIHBjKQoreworICBzdGF0aWMgY29uc3QgZ2Ri X2J5dGUgZW5kYnIzMltdID0geyAweGYzLCAweDBmLCAweDFlLCAweGZiIH07CisKKyAgZ2RiX2J5 dGUgYnVmW3NpemVvZiAoZW5kYnIzMildOworCisgIC8qIFN0b3AgdGhlcmUgaWYgd2UgY2FuJ3Qg cmVhZCB0aGUgY29kZSAqLworICBpZiAodGFyZ2V0X3JlYWRfY29kZSAocGMsIGJ1Ziwgc2l6ZW9m IChlbmRicjMyKSkpCisgICAgcmV0dXJuIHBjOworCisgIC8qIElmIHRoZSBpbnN0cnVjdGlvbiBp c24ndCBhbiBlbmRicjMyLCBzdG9wICovCisgIGlmIChtZW1jbXAgKGJ1ZiwgZW5kYnIzMiwgc2l6 ZW9mIChlbmRicjMyKSkgIT0gMCkKKyAgICByZXR1cm4gcGM7CisKKyAgcmV0dXJuIHBjICsgc2l6 ZW9mIChlbmRicjMyKTsKK30KIAogLyogQ2hlY2sgd2hldGhlciBQQyBwb2ludHMgdG8gYSBuby1v cCBpbnN0cnVjdGlvbi4gICovCiBzdGF0aWMgQ09SRV9BRERSCkBAIC0xODE1LDYgKzE4MzMsNyBA QCBpMzg2X2FuYWx5emVfcHJvbG9ndWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogCQkgICAg ICAgQ09SRV9BRERSIHBjLCBDT1JFX0FERFIgY3VycmVudF9wYywKIAkJICAgICAgIHN0cnVjdCBp Mzg2X2ZyYW1lX2NhY2hlICpjYWNoZSkKIHsKKyAgcGMgPSBpMzg2X3NraXBfZW5kYnIgKHBjKTsK ICAgcGMgPSBpMzg2X3NraXBfbm9vcCAocGMpOwogICBwYyA9IGkzODZfZm9sbG93X2p1bXAgKGdk YmFyY2gsIHBjKTsKICAgcGMgPSBpMzg2X2FuYWx5emVfc3RydWN0X3JldHVybiAocGMsIGN1cnJl bnRfcGMsIGNhY2hlKTsKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQt cHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kz ODYtcHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJl bmFtZSBmcm9tIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtcHJvbG9ndWUtc2tpcC1jZi1w cm90ZWN0aW9uLmMKcmVuYW1lIHRvIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1wcm9sb2d1 ZS1za2lwLWNmLXByb3RlY3Rpb24uYwpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC9hbWQ2NC1wcm9sb2d1ZS1za2lwLWNmLXByb3RlY3Rpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9pMzg2LXByb2xvZ3VlLXNraXAtY2YtcHJvdGVjdGlvbi5leHAKc2ltaWxhcml0eSBp bmRleCA5MCUKcmVuYW1lIGZyb20gZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1wcm9sb2d1 ZS1za2lwLWNmLXByb3RlY3Rpb24uZXhwCnJlbmFtZSB0byBnZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2kzODYtcHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cAppbmRleCAzYzUxZmQzMDM1Mi4u OWJhNjRmOWMzNzUgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtcHJv bG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2kzODYtcHJvbG9ndWUtc2tpcC1jZi1wcm90ZWN0aW9uLmV4cApAQCAtMTYsMTMgKzE2LDEzIEBA CiAjIFRlc3Qgc2tpcHBpbmcgYSBwcm9sb2d1ZSB0aGF0IHdhcyBnZW5lcmF0ZWQgd2l0aCBnY2Mn cyAtZmNmLXByb3RlY3Rpb249ZnVsbAogIyAoY29udHJvbCBmbG93IHByb3RlY3Rpb24pIG9wdGlv bi4KICMKLSMgVGhpcyBvcHRpb24gcGxhY2VzIGFuIGBlbmRicjY0YCBpbnN0cnVjdGlvbiBhdCB0 aGUgc3RhcnQgb2YgYWxsIGZ1bmN0aW9ucywKLSMgd2hpY2ggY2FuIGludGVyZmVyZSB3aXRoIHBy b2xvZ3VlIGFuYWx5c2lzLgorIyBUaGlzIG9wdGlvbiBwbGFjZXMgYW4gYGVuZGJyMzJgL2BlbmRi cjY0YCBpbnN0cnVjdGlvbiBhdCB0aGUgc3RhcnQgb2YKKyMgYWxsIGZ1bmN0aW9ucywgd2hpY2gg Y2FuIGludGVyZmVyZSB3aXRoIHByb2xvZ3VlIGFuYWx5c2lzLgogCiBzdGFuZGFyZF90ZXN0Zmls ZSAuYwogc2V0IGJpbmZpbGUgJHtiaW5maWxlfQogCi1pZiB7ICFbaXN0YXJnZXQgeDg2XzY0LSot KiBdIHx8ICFbaXNfbHA2NF90YXJnZXRdIH0geworaWYgeyAhW2lzdGFyZ2V0IHg4Nl82NC0qLSpd ICYmICFbaXN0YXJnZXQgaT84Ni0qLSpdIH0gewogICAgIHZlcmJvc2UgIlNraXBwaW5nICR7dGVz dGZpbGV9LiIKICAgICByZXR1cm4KIH0KLS0gCjIuMjYuMgoK --000000000000c24e2b05af9fb784--