Allow the HIGH-FRAME parameter for -stack-list-frames to be larger
authorVladimir Prus <vladimir@codesourcery.com>
Thu, 7 Sep 2006 16:40:19 +0000 (16:40 +0000)
committerVladimir Prus <vladimir@codesourcery.com>
Thu, 7 Sep 2006 16:40:19 +0000 (16:40 +0000)
than the number of available frames.

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/mi/mi-cmd-stack.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-stack.exp

index 1b617274e4a51725ab2bd796cf1109e22e30f8af..60394f242cfba6c75543beea44fb69ebc6523518 100644 (file)
@@ -1,3 +1,9 @@
+2006-09-07  Vladimir Prus  <vladimir@codesourcery.com>
+
+        * 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  <brobecker@adacore.com>
 
        From Stephan Springl  <springl-gdb@bfw-online.de>
index c7a5621f6dfa0f3c1c274e5415ba715f0a2c5276..078ced4e9034f63fddff961ee15612e80ea9b2f8 100644 (file)
@@ -1,3 +1,9 @@
+2006-09-07  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * 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  <bob.wilson@acm.org>
 
        * gdb.texinfo (Packets, Stop Reply Packets, General Query Packets,
index fd8d3c0066eb27a7bb0ca53476a10065704acd1e..718781a62422115b4252824f15e961a39fd8b5ad 100644 (file)
@@ -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
 
index 2de54511cc267290fa650662ac10900ecfc31c5d..00dcba44398544fb9436fc4e1f756536f0653995 100644 (file)
@@ -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;
 }
index 61fcffb113c365b927dcd33b898addf6f4a1d582..7a122774237109a659cdb6557b3d3641fb5b31e8 100644 (file)
@@ -1,3 +1,9 @@
+2006-09-07  Vladimir Prus  <ghost@vladimir@codesourcery.com>
+
+       * 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  <fnf@specifix.com>
 
        * lib/gdb.exp (skip_altivec_tests): Fix apparent typo,
index 47e51cd50c1e63293739accd96e408dcb61247f7..0f355952e00cfcfe7a6f5df130234eb6f8ce8738 100644 (file)
@@ -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 {} {