[PATCH 0/4] layout command changes

Pedro Alves palves@redhat.com
Thu May 21 08:12:00 GMT 2015


On 05/21/2015 12:17 AM, Andrew Burgess wrote:
> This patch set replaces an earlier patch I posted here:
>   https://sourceware.org/ml/gdb-patches/2015-04/msg00185.html
> 
> In the previous patch I had to jump through some hoops in order to
> support completion of the layout names like $FREGS.  This was pretty
> annoying as I had not realised these layouts existed until I started
> writting the completer code...
> 
> ...but it turns out that those layout names don't work anyway, and
> have not done so for some time.  I didn't figure out exactly when they
> broke, but I believe they were broken in 6.8.
> 
> Still, it doesn't matter, as we have the 'tui regs' command, which
> does work, and does allow the register set displayed in tui to be
> changed.  This is for the best anyway (I think), personally, I felt
> that managing both the layout, and the choice of register set all from
> the layout command was too much overloading.
> 
> The first patch in this series removes the $FREGS style register set
> names from the layout command, and cleans up all of the code relating
> to them.

Looks like this was really meant to switch to the matching registers
layout when the user did "display $fpregs", etc. instead of manually
specifying that layout.  We have:

static void
display_command (char *arg, int from_tty)
{
  struct format_data fmt;
  struct expression *expr;
  struct display *newobj;
  int display_it = 1;
  const char *exp = arg;

#if defined(TUI)
  /* NOTE: cagney/2003-02-13 The `tui_active' was previously
     `tui_version'.  */
  if (tui_active && exp != NULL && *exp == '$')
    display_it = (tui_set_layout_for_display_command (exp) == TUI_FAILURE);
#endif

Doesn't your series effectively make this bit in display_command dead?
(while before it would switch on the registers layout).  (We should probably
rename tui_set_layout_for_display_command too.)

I had never noticed these special register layouts before either.  I'm not
at all adverse to removing them.  Not all expressions that start with $ are
registers, and probably a better idea would be to have
a separate "displays" window (so displays would go to that window
instead of the command window when the TUI is active), so that the tui
could neatly show watched variables/random expressions too.

> 
> The second patch is a much simpler version of command completion
> support for layout names.
> 
> The third and forth patches fix small tui related issues that I
> spotted during testing.


Thanks,
Pedro Alves



More information about the Gdb-patches mailing list