This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] -stack-select-frame


Last year I submitted a dreadful patch for -stack-select-frame
(thread subject: How does GDB/MI give the current frame).

Here, hopefully, is a much more sensible one.  The idea is the same: that
-stack-select-frame tells the frontend what the current or selected frame
is.

The current documentation for -stack-select-frame is slightly wrong because
the argument FRAMENUM is optional.  I've corrected this and explained what
the patch does.

Nick


2005-06-16  Nick Roberts  <nickrob@snap.net.nz>

	* mi/mi-cmd-stack.c (mi_cmd_stack_select_frame): Don't test for
	stack.  Print frame details.
	* gdb.texinfo (GDB/MI Stack Manipulation): Revise description
	of -stack-select-frame.


*** /home/nick/src/gdb/mi/mi-cmd-stack.c.~1.25.~	2005-02-13 00:36:20.000000000 +1300
--- /home/nick/src/gdb/mi/mi-cmd-stack.c	2005-06-16 14:28:29.000000000 +1200
***************
*** 329,337 ****
  enum mi_cmd_result
  mi_cmd_stack_select_frame (char *command, char **argv, int argc)
  {
-   if (!target_has_stack)
-     error (_("mi_cmd_stack_select_frame: No stack."));
- 
    if (argc > 1)
      error (_("mi_cmd_stack_select_frame: Usage: [FRAME_SPEC]"));
  
--- 329,334 ----
***************
*** 340,344 ****
--- 337,342 ----
      select_frame_command (0, 1 /* not used */ );
    else
      select_frame_command (argv[0], 1 /* not used */ );
+   print_stack_frame (get_selected_frame (NULL), 1, LOC_AND_ADDRESS);
    return MI_CMD_DONE;
  }


*** /home/nick/src/gdb/doc/gdb.texinfo.~1.261.~	2005-06-16 14:36:11.000000000 +1200
--- /home/nick/src/gdb/doc/gdb.texinfo	2005-06-16 15:01:18.000000000 +1200
***************
*** 19473,19483 ****
  @subsubheading Synopsis
  
  @smallexample
!  -stack-select-frame @var{framenum}
  @end smallexample
  
! Change the current frame.  Select a different frame @var{framenum} on
! the stack.
  
  @subsubheading @value{GDBN} Command
  
--- 19473,19484 ----
  @subsubheading Synopsis
  
  @smallexample
!  -stack-select-frame [ @var{framenum} ]
  @end smallexample
  
! Select a different frame @var{framenum} on the stack and print its
! details.  If the argument @var{framenum} is not specified, just print
! the details of the current frame.
  
  @subsubheading @value{GDBN} Command
  
***************
*** 19489,19495 ****
  @smallexample
  (@value{GDBP})
  -stack-select-frame 2
! ^done
  (@value{GDBP})
  @end smallexample
  
--- 19490,19497 ----
  @smallexample
  (@value{GDBP})
  -stack-select-frame 2
! ^done,frame=@{level="2",addr="0x000107a4",func="foo",
!   file="recursive2.c",fullname="/home/foo/bar/devo/myproject/recursive2.c",line=line="14"@},
  (@value{GDBP})
  @end smallexample


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]