OSDN Git Service

Allow the HIGH-FRAME parameter for -stack-list-frames to be larger
authorvprus <vprus>
Thu, 7 Sep 2006 16:40:18 +0000 (16:40 +0000)
committervprus <vprus>
Thu, 7 Sep 2006 16:40:18 +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 1b61727..60394f2 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 c7a5621..078ced4 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 fd8d3c0..718781a 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 2de5451..00dcba4 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 61fcffb..7a12277 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 47e51cd..0f35595 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 {} {