From: Mo DeJong <supermo@bayarea.net>
To: gdb-patches@sources.redhat.com
Subject: Re: Patch to add relative stack level support to stack-select-frame MIcommand
Date: Thu, 25 Jul 2002 20:47:00 -0000 [thread overview]
Message-ID: <20020725201125.7df591c2.supermo@bayarea.net> (raw)
In-Reply-To: <3D40844A.6090603@ges.redhat.com>
On Thu, 25 Jul 2002 19:05:46 -0400
Andrew Cagney <ac131313@ges.redhat.com> wrote:
> > This patch is for the CVS HEAD, it includes patches for
> > the docs and the testsuite.
>
> Can you post a patch just describing proposed new syntax gdb@ if no one
> jumps we'll go through with this.
Will do.
> > +void
> > +up_silently_command_wrapper (char *count_exp) {
> > + up_silently_command(count_exp, 1 /* unused */);
> > +}
> > +
>
> Coding, brace on new line. Space before lparen.
Doh. I have appended a new patch to fix that along with
the other things you mentioned.
> > Change the current frame. Select a different frame @var{framenum} on
> > -the stack.
> > +the stack. If prefixed by a '+' or '-' character, the @var{framenum}
> > +is interpreted as an offset from the current frame.
>
> Can this be expanded. Clarify the direction that +/- go in. -1 towards
> the inner most frame, +1 towards the outer most frame.
I have attempted to address this in the appended patch.
> What does:
>
> -stack-select-frame 0
> -stack-select-frame -1
It would generate an error, same as the down command.
> > -stack-select-frame 2
> > +^done
> > +-stack-select-frame -1
> > ^done
>
> Suggest printing the current frame here.
That might be a good idea, but it would break compatibility with
earlier versions.
...
> > + mi_gdb_test "232-stack-select-frame +1" \
> > + "232\\^done" \
> > + "stack select frame +1"
> > +
>
> Can these check that the frame went in the right direction.
>
> Hmm, nope, I'll post something to gdb@
No, I posted another patch that would implement a stack-info-frame
command, but it is a separate issue.
Here is the updated patch:
2002-07-25 Mo DeJong <supermo@bayarea.net>
* stack.c (up_silently_command_wrapper,
down_silently_command_wrapper): Add wrappers for up
and down commands for use in mi/mi-cmd-stack.c.
Index: stack.c
===================================================================
RCS file: /cvs/src/src/gdb/stack.c,v
retrieving revision 1.40
diff -u -r1.40 stack.c
--- stack.c 11 Jul 2002 19:29:08 -0000 1.40
+++ stack.c 26 Jul 2002 02:43:32 -0000
@@ -1676,6 +1676,12 @@
select_frame (fi);
}
+void
+up_silently_command_wrapper (char *count_exp)
+{
+ up_silently_command (count_exp, 1 /* unused */);
+}
+
static void
up_silently_command (char *count_exp, int from_tty)
{
@@ -1719,6 +1725,12 @@
}
select_frame (frame);
+}
+
+void
+down_silently_command_wrapper (char *count_exp)
+{
+ down_silently_command (count_exp, 1 /* unused */);
}
/* ARGSUSED */
2002-07-25 Mo DeJong <supermo@bayarea.net>
* gdbmi.texinfo (stack-select-frame): Mention
support for relative frame levels like +1 and -2.
* mi-cmd-stack.c (mi_cmd_stack_select_frame):
Add support for relative stack frame levels
to the stack-select-frame mi command.
Index: gdbmi.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/mi/gdbmi.texinfo,v
retrieving revision 1.27
diff -u -r1.27 gdbmi.texinfo
--- gdbmi.texinfo 17 Jun 2002 17:30:57 -0000 1.27
+++ gdbmi.texinfo 26 Jul 2002 02:57:12 -0000
@@ -2826,7 +2826,10 @@
@end example
Change the current frame. Select a different frame @var{framenum} on
-the stack.
+the stack. If prefixed by a '+' or '-' character, the @var{framenum}
+is interpreted as an offset from the current frame. A '+' prefix moves
+the current frame towards the outer most frame while a '-' prefix moves
+the current frame towards the inner most frame.
@subsubheading @value{GDBN} Command
@@ -2838,6 +2841,10 @@
@smallexample
(@value{GDBP})
-stack-select-frame 2
+^done
+-stack-select-frame -2
+^done
+-stack-select-frame +1
^done
(@value{GDBP})
@end smallexample
Index: mi-cmd-stack.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-stack.c,v
retrieving revision 1.11
diff -u -r1.11 mi-cmd-stack.c
--- mi-cmd-stack.c 5 Apr 2002 22:04:43 -0000 1.11
+++ mi-cmd-stack.c 26 Jul 2002 02:57:12 -0000
@@ -32,6 +32,10 @@
we pull the plug on the sanitization. */
extern void select_frame_command_wrapper (char *, int);
+extern void up_silently_command_wrapper (char *count_exp);
+
+extern void down_silently_command_wrapper (char *count_exp);
+
static void list_args_or_locals (int locals, int values, struct frame_info *fi);
/* Print a list of the stack frames. Args can be none, in which case
@@ -304,6 +308,13 @@
if (argc == 0)
select_frame_command_wrapper (0, 1 /* not used */ );
else
- select_frame_command_wrapper (argv[0], 1 /* not used */ );
+ {
+ if (argv[0][0] == '+')
+ up_silently_command_wrapper (&argv[0][1]);
+ else if (argv[0][0] == '-')
+ down_silently_command_wrapper (&argv[0][1]);
+ else
+ select_frame_command_wrapper (argv[0], 1 /* not used */ );
+ }
return MI_CMD_DONE;
}
2002-07-25 Mo DeJong <supermo@bayarea.net>
* mi-stack.exp: Add tests for relative stack
frame with stack-select-frame command.
Index: mi-stack.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-stack.exp,v
retrieving revision 1.8
diff -u -r1.8 mi-stack.exp
--- mi-stack.exp 19 Aug 2001 01:23:43 -0000 1.8
+++ mi-stack.exp 26 Jul 2002 02:45:43 -0000
@@ -192,6 +192,14 @@
"232\\^done" \
"stack select frame 1"
+ mi_gdb_test "232-stack-select-frame +1" \
+ "232\\^done" \
+ "stack select frame +1"
+
+ mi_gdb_test "232-stack-select-frame -1" \
+ "232\\^done" \
+ "stack select frame -1"
+
mi_gdb_test "232-stack-list-locals 1" \
"232\\^done,locals=\\\[\\\]" \
"stack locals listing for new frame"
next prev parent reply other threads:[~2002-07-26 3:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-24 23:41 Mo DeJong
2002-07-25 16:30 ` Andrew Cagney
2002-07-25 20:47 ` Mo DeJong [this message]
2002-07-29 13:51 ` Mo DeJong
2002-07-29 15:20 ` Andrew Cagney
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=20020725201125.7df591c2.supermo@bayarea.net \
--to=supermo@bayarea.net \
--cc=gdb-patches@sources.redhat.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