public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@palves.net>
To: Bruno Larsen <blarsen@redhat.com>, gdb@sourceware.org
Subject: Re: [RFC] Change displayed line when execution direction is reversed
Date: Fri, 17 Jun 2022 13:07:43 +0100	[thread overview]
Message-ID: <1e63f554-b24b-0bfb-e97d-d182ca6a41d2@palves.net> (raw)
In-Reply-To: <040e723a-1f8b-3fb2-a076-85664243513f@redhat.com>

On 2022-06-15 13:25, Bruno Larsen via Gdb wrote:
> Hello all,
> 
> I was doing some reverse debugging and noticed that setting the execution direction to reverse does not change how GDB displays lines. The problem with this is that the user doesn't see what will be executed if a step is taken, which makes the user experience quite annoying. How would the community feel if GDB printed the previous line, instead of current line, when the execution direction is reversed?
> 
> Sorry if this is the wrong list. It didn't feel like a bug, and I don't have a patch yet, so this felt like the best place to send.

How do you know which line that would be?  E.g.:

 if (foo)
   func ();
 else
   bar ();
 qux = 0; // stopped here.

Say you're stopped at the "stopped here" line, and flip execution direction to reverse.  Which line would gdb show as next line?


Also, showing a different line would result in the current PC (p $pc, info registers) etc. printing an
address for a line totally unrelated to the line that GDB is displaying, no?  Same for "break" with no
arguments, etc.  Worse, what happens when you print variables?  The block scope used is the one for the
current PC, while gdb would display a different source line as current line?

I don't see off hand how this can work.  Can you detail it?

  parent reply	other threads:[~2022-06-17 12:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-15 12:25 Bruno Larsen
2022-06-15 12:34 ` Christian Biesinger
2022-06-15 12:39   ` Bruno Larsen
2022-06-15 12:47     ` Christian Biesinger
2022-06-15 12:49       ` Bruno Larsen
2022-06-15 12:57         ` Christian Biesinger
2022-06-17 12:07 ` Pedro Alves [this message]
2022-06-17 13:03   ` Bruno Larsen
2022-06-17 13:44     ` Pedro Alves
2022-06-17 19:35       ` Bruno Larsen

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=1e63f554-b24b-0bfb-e97d-d182ca6a41d2@palves.net \
    --to=pedro@palves.net \
    --cc=blarsen@redhat.com \
    --cc=gdb@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).