From: "Eli Zaretskii" <eliz@gnu.org>
To: Johan Rydberg <jrydberg@virtutech.com>
Cc: dan@shearer.org, gdb@sources.redhat.com
Subject: Re: [discuss] Support for reverse-execution
Date: Fri, 20 May 2005 10:37:00 -0000 [thread overview]
Message-ID: <01c55d27$Blat.v2.4$69471120@zahav.net.il> (raw)
In-Reply-To: <428C8E04.3000305@virtutech.com> (message from Johan Rydberg on Thu, 19 May 2005 15:00:52 +0200)
> Date: Thu, 19 May 2005 15:00:52 +0200
> From: Johan Rydberg <jrydberg@virtutech.com>
> Cc: gdb@sources.redhat.com
>
> Here's a patch against CVS that implements the following commands:
>
> - rstep, rstepi
> - rnext, rnexti
>
> The obvious commands "rcontinue" and "rfinished" are not yet
> implemented, and therefor not included in this patch. The command
> names are of course up for discussion.
I don't mind these names; reverse-next etc. seem awkward, but rnext
etc. are okay, I think. However, see my other comments in response to
Daniel.
> What I have done is add a new variable, step_direction, that can either
> be STEP_DIR_FORWARD or STEP_DIR_REVERSE.
I'd prefer STEP_FORWARD and STEP_BACKWARD.
> To implement "rnext" I had to add a new target-specific function that
> tries to figure out the address of the call instruction based on the
> last executed instruction and the instruction to be executed, IF the
> current instruction can be identified as a return insn.
Sorry, I'm confused. Isn't it right that if I'm stepping backwards
through code such as this:
i += 1;
foo (i);
=>i = 0;
where "=>" shows the current source line, then typing `rnext' once
will get me to this:
i += 1;
=>foo (i);
i = 0;
which means I'm now before the CALL insn that calls `foo'? If so,
what ``return insn'' were you talking about? If it's the return
instruction that returns from `foo', then that insn is inside the code
generatedfor `foo', which GDB won't see. What am I missing?
> + add_com ("rnext", class_run, rnext_command,
> + "Step program until it reaches the previous source line.\n\
"Go backwards until the program reaches the source line before the
current one."
> + add_com_alias ("rn", "rnext", class_run, 1);
Do we want another alias called "previous"?
> +extern enum step_direction_kind step_direction;
Yuk! a global variable!
> + if (step_direction == STEP_DIR_FORWARD)
> + target_resume (resume_ptid, step, sig);
> + else
> + {
> + target_reverse (resume_ptid, step);
> + }
I'd prefer that target_resume accepted the direction argument. Is
there something that I'm missing that makes this hard or impossible?
next prev parent reply other threads:[~2005-05-20 10:37 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-19 1:23 Dan Shearer
2005-05-19 13:01 ` Johan Rydberg
2005-05-19 13:18 ` Daniel Jacobowitz
2005-05-19 13:47 ` Johan Rydberg
2005-05-20 10:37 ` Eli Zaretskii [this message]
2005-05-20 11:37 ` Andreas Schwab
2005-05-20 13:18 ` Daniel Jacobowitz
2005-05-20 13:36 ` Fabian Cenedese
2005-05-20 13:47 ` Daniel Jacobowitz
2005-05-20 14:41 ` Eli Zaretskii
2005-05-20 22:14 ` Daniel Jacobowitz
2005-05-20 12:22 ` Johan Rydberg
2005-05-20 13:19 ` Daniel Jacobowitz
2005-05-20 14:12 ` Eli Zaretskii
2005-05-20 13:14 ` Daniel Jacobowitz
2005-05-20 14:34 ` Eli Zaretskii
2005-05-20 15:40 ` Johan Rydberg
2005-05-20 10:47 ` Eli Zaretskii
-- strict thread matches above, loose matches on Subject: below --
2005-05-21 15:53 Paul Schlie
2005-05-20 22:11 Michael Snyder
2005-05-20 23:32 ` Paul Schlie
2005-05-20 21:59 Michael Snyder
2005-05-20 21:51 Michael Snyder
2005-05-21 9:44 ` Eli Zaretskii
2005-05-20 21:44 Michael Snyder
2005-05-20 21:25 Michael Snyder
2005-05-20 21:16 Michael Snyder
2005-05-20 21:31 ` Daniel Jacobowitz
2005-05-21 9:39 ` Eli Zaretskii
2005-05-23 18:19 ` Michael Snyder
2005-05-20 21:11 Michael Snyder
2005-05-20 21:27 ` Daniel Jacobowitz
2005-05-20 19:02 Michael Snyder
2005-05-20 20:43 ` Eli Zaretskii
2005-05-20 21:03 ` Michael Snyder
2005-05-20 15:49 Paul Schlie
2005-05-20 17:41 ` Dan Shearer
2005-05-20 22:01 ` Paul Schlie
2005-05-20 22:08 ` Daniel Jacobowitz
2005-05-20 22:43 ` Paul Schlie
2005-05-21 0:58 ` Daniel Jacobowitz
2005-05-21 1:42 ` Paul Schlie
2005-05-21 1:53 ` Daniel Jacobowitz
2005-05-21 1:56 ` Daniel Jacobowitz
2005-05-21 15:03 ` Paul Schlie
2005-05-21 14:13 ` Paul Schlie
2005-05-21 14:23 ` Daniel Jacobowitz
2005-05-21 15:04 ` Paul Schlie
2005-05-20 20:58 ` Michael Snyder
2005-05-20 21:35 ` Paul Schlie
2005-05-16 17:47 Dan Shearer
2005-05-16 18:04 ` Dan Shearer
2005-05-20 18:15 ` Daniel Jacobowitz
2005-05-21 0:05 ` Frank Ch. Eigler
2005-05-21 10:13 ` Eli Zaretskii
2005-05-21 10:28 ` Russell Shaw
2005-05-21 12:38 ` Eli Zaretskii
2005-05-21 12:55 ` Russell Shaw
2005-05-21 14:39 ` Russell Shaw
2005-05-21 14:19 ` Daniel Jacobowitz
2005-05-21 15:46 ` Eli Zaretskii
2005-05-21 17:43 ` Daniel Jacobowitz
2005-05-23 19:39 ` Dan Shearer
2005-05-12 23:08 Michael Snyder
2005-05-13 6:23 ` Eli Zaretskii
2005-05-19 13:46 ` Daniel Jacobowitz
2005-05-19 18:46 ` Michael Snyder
2005-05-19 19:26 ` Johan Rydberg
2005-05-20 10:55 ` Eli Zaretskii
2005-05-20 13:04 ` Daniel Jacobowitz
2005-05-20 14:30 ` Eli Zaretskii
2005-05-20 14:43 ` Andreas Schwab
2005-05-20 20:48 ` Michael Snyder
2005-05-20 20:51 ` Daniel Jacobowitz
2005-05-20 20:38 ` Michael Snyder
2005-05-20 15:05 ` Vladimir Prus
2005-05-20 15:58 ` Eli Zaretskii
2005-05-20 18:14 ` Daniel Jacobowitz
2005-05-20 18:30 ` Eli Zaretskii
2005-05-20 19:27 ` Stan Shebs
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='01c55d27$Blat.v2.4$69471120@zahav.net.il' \
--to=eliz@gnu.org \
--cc=dan@shearer.org \
--cc=gdb@sources.redhat.com \
--cc=jrydberg@virtutech.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