From: Simon Marchi <simark@simark.ca>
To: Victor Collod <vcollod@nvidia.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH v3 1/7] Add i386 support for endbr skipping
Date: Thu, 6 Aug 2020 09:57:18 -0400 [thread overview]
Message-ID: <05f26b4d-5d2c-3dec-c129-61efc2ed7d1c@simark.ca> (raw)
In-Reply-To: <20200624012857.31849-2-vcollod@nvidia.com>
On 2020-06-23 9:28 p.m., Victor Collod via Gdb-patches wrote:
> 2020-06-11 Victor Collod <vcollod@nvidia.com>
>
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`.
Simon
next prev parent reply other threads:[~2020-08-06 13:57 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 23:23 [PATCH] Improve intel IBT support Victor Collod
2020-06-05 23:55 ` Victor Collod
2020-06-11 3:18 ` Simon Marchi
2020-06-11 22:54 ` [PATCH v2 0/2] " Victor Collod
2020-06-11 22:54 ` [PATCH v2 1/2] Add i386 support for endbr skipping Victor Collod
2020-06-21 11:27 ` Simon Marchi
2020-06-11 22:54 ` [PATCH v2 2/2] Refactor amd64_analyze_prologue Victor Collod
2020-06-21 11:38 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 0/7] Improve intel IBT support Victor Collod
2020-06-24 1:28 ` [PATCH v3 1/7] Add i386 support for endbr skipping Victor Collod
2020-08-06 13:57 ` Simon Marchi [this message]
2020-09-19 0:29 ` [PATCH] gdb: Update i386_analyze_prologue to skip endbr32 H.J. Lu
2020-09-19 0:38 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 2/7] amd64_analyze_prologue: swap upper bound check condition operands Victor Collod
2020-08-06 14:41 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 3/7] amd64_analyze_prologue: merge op and buf Victor Collod
2020-08-06 14:55 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 4/7] amd64_analyze_prologue: invert a condition for readability Victor Collod
2020-08-06 14:57 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 5/7] amd64_analyze_prologue: gradually update pc Victor Collod
2020-08-06 14:59 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 6/7] amd64_analyze_prologue: fix incorrect comment Victor Collod
2020-08-06 15:05 ` Simon Marchi
2020-06-24 1:28 ` [PATCH v3 7/7] amd64_analyze_prologue: use target_read_code instead of read_code Victor Collod
2020-08-06 15:01 ` Simon Marchi
2020-08-05 21:44 ` [PATCH v3 0/7] Improve intel IBT support Victor Collod
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=05f26b4d-5d2c-3dec-c129-61efc2ed7d1c@simark.ca \
--to=simark@simark.ca \
--cc=gdb-patches@sourceware.org \
--cc=vcollod@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox