This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 0/4] layout command changes
- From: Pedro Alves <palves at redhat dot com>
- To: Andrew Burgess <andrew dot burgess at embecosm dot com>, gdb-patches at sourceware dot org
- Date: Thu, 21 May 2015 09:12:45 +0100
- Subject: Re: [PATCH 0/4] layout command changes
- Authentication-results: sourceware.org; auth=none
- References: <cover dot 1432163460 dot git dot andrew dot burgess at embecosm dot com>
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