public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/29927] reverse-finish requires two reverse next instructions to reach previous source line
Date: Tue, 17 Jan 2023 16:47:52 +0000	[thread overview]
Message-ID: <bug-29927-4717-1GmuoO1ssL@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-29927-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=29927

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Carl Love <carll@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b22548ddb30bfb167708e82d3bb932461c1b703a

commit b22548ddb30bfb167708e82d3bb932461c1b703a
Author: Carl Love <cel@us.ibm.com>
Date:   Mon Dec 19 12:48:54 2022 -0500

    X86: reverse-finish fix

    PR record/29927  - reverse-finish requires two reverse next instructions to
    reach previous source line

    Currently on X86, when executing the finish command in reverse, gdb does a
    single step from the first instruction in the callee to get back to the
    caller.  GDB stops on the last instruction in the source code line where
    the call was made.  When stopped at the last instruction of the source code
    line, a reverse next or step command will stop at the first instruction
    of the same source code line thus requiring two step/next commands to
    reach the previous source code line.  It should only require one step/next
    command to reach the previous source code line.

    By contrast, a reverse next or step command from the first line in a
    function stops at the first instruction in the source code line where the
    call was made.

    This patch fixes the reverse finish command so it will stop at the first
    instruction of the source line where the function call was made.  The
    behavior on X86 for the reverse-finish command now matches doing a
    reverse-next from the beginning of the function.

    The proceed_to_finish flag in struct thread_control_state is no longer
    used.  This patch removes the declaration, initialization and setting of
    the flag.

    This patch requires a number of regression tests to be updated.  Test
    gdb.mi/mi-reverse.exp no longer needs to execute two steps to get to the
    previous line.  The gdb output for tests gdb.reverse/until-precsave.exp
    and gdb.reverse/until-reverse.exp changed slightly.  The expected result in
    tests gdb.reverse/amd64-failcall-reverse.exp and
    gdb.reverse/singlejmp-reverse.exp are updated to the correct expected
    result.

    This patch adds a new test gdb.reverse/finish-reverse-next.exp to test the
    reverse-finish command when returning from the entry point and from the
    body of the function.

    The step_until proceedure in test gdb.reverse/step-indirect-call-thunk.exp
    was moved to lib/gdb.exp and renamed cmd_until.

    The patch has been tested on X86 and PowerPC to verify no additional
    regression failures occured.

    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29927

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2023-01-17 16:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-21 16:56 [Bug gdb/29927] New: " cel at us dot ibm.com
2023-01-11 19:08 ` [Bug gdb/29927] " cel at us dot ibm.com
2023-01-11 19:12 ` cel at us dot ibm.com
2023-01-17 16:47 ` cvs-commit at gcc dot gnu.org [this message]
2023-01-17 16:47 ` cvs-commit at gcc dot gnu.org
2023-01-17 16:50 ` cel at us dot ibm.com
2023-01-17 16:52 ` cel at us dot ibm.com

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=bug-29927-4717-1GmuoO1ssL@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).