From 2ab1eb7abcf19861c0d778227bd44d5085d1e176 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 7 Sep 2006 16:40:19 +0000 Subject: [PATCH] Allow the HIGH-FRAME parameter for -stack-list-frames to be larger than the number of available frames. --- gdb/ChangeLog | 6 ++++++ gdb/doc/ChangeLog | 6 ++++++ gdb/doc/gdb.texinfo | 5 ++++- gdb/mi/mi-cmd-stack.c | 2 -- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/gdb.mi/mi-stack.exp | 4 ++++ 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1b61727..60394f2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2006-09-07 Vladimir Prus + + * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Don't emit + error if high requested frame number is larger then number + of available frames. + 2006-09-07 Joel Brobecker From Stephan Springl diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index c7a5621..078ced4 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2006-09-07 Vladimir Prus + + * gdb.texinfo (GDB/MI Stack Manipulation): Mention that + -stack-list-locals HIGH_FRAME argument can be larger then the + actual number of frames. + 2006-09-02 Bob Wilson * gdb.texinfo (Packets, Stop Reply Packets, General Query Packets, diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index fd8d3c0..718781a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -19331,7 +19331,10 @@ Line number corresponding to the @code{$pc}. If invoked without arguments, this command prints a backtrace for the whole stack. If given two integer arguments, it shows the frames whose levels are between the two arguments (inclusive). If the two arguments -are equal, it shows the single frame at the corresponding level. +are equal, it shows the single frame at the corresponding level. It is +an error if @var{low-frame} is larger than the actual number of +frames. On the other hand, @var{high-frame} may be larger then the +actual number of frames, in which case only existing frames will be returned. @subsubheading @value{GDBN} Command diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index 2de5451..00dcba4 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -88,8 +88,6 @@ mi_cmd_stack_list_frames (char *command, char **argv, int argc) } do_cleanups (cleanup_stack); - if (i < frame_high) - error (_("mi_cmd_stack_list_frames: Not enough frames in stack.")); return MI_CMD_DONE; } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 61fcffb..7a12277 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-09-07 Vladimir Prus + + * gdb.mi/mi-stack.exp (test_stack_frame_listing): Test that + HIGH_FRAME argument to -stack-list-locals can be larger than + the number of frames. + 2006-08-18 Fred Fish * lib/gdb.exp (skip_altivec_tests): Fix apparent typo, diff --git a/gdb/testsuite/gdb.mi/mi-stack.exp b/gdb/testsuite/gdb.mi/mi-stack.exp index 47e51cd..0f35595 100644 --- a/gdb/testsuite/gdb.mi/mi-stack.exp +++ b/gdb/testsuite/gdb.mi/mi-stack.exp @@ -75,6 +75,10 @@ proc test_stack_frame_listing {} { mi_gdb_test "235-stack-info-frame" \ "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \ "selected frame listing" + + mi_gdb_test "236-stack-list-frames 1 300" \ + "236\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\}\\\]" \ + "stack frame listing 1 300" } proc test_stack_args_listing {} { -- 2.7.4