From a4ea0946c3f1badd6755b85b4e50e2ec4841e69c Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Fri, 22 May 2015 10:07:42 +0200 Subject: [PATCH] gdb: New 'tui enable' and 'tui disable' commands. Add new commands to specifically enable and disable tui mode. This is in addition to the readline bindings, but might be easier for a user to discover if they accidentally end up in tui mode. gdb/ChangeLog: * NEWS: Mention 'tui enable' and 'tui disable'. * tui/tui.c (tui_enable_command): New function. (tui_disable_command): New function. (_initialize_tui): New function. gdb/doc/ChangeLog: * gdb.texinfo (TUI): Include 'tui enable' in the introduction. (TUI Commands): Add 'tui enable' and 'tui disable' details. --- gdb/ChangeLog | 7 +++++++ gdb/NEWS | 4 ++++ gdb/doc/ChangeLog | 5 +++++ gdb/doc/gdb.texinfo | 15 +++++++++++++-- gdb/tui/tui.c | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 42ef67d912..f55b9c4a88 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2015-05-22 Andrew Burgess + + * NEWS: Mention 'tui enable' and 'tui disable'. + * tui/tui.c (tui_enable_command): New function. + (tui_disable_command): New function. + (_initialize_tui): New function. + 2015-05-21 Andrew Burgess * tui/tui-regs.c (tui_reg_next_command): Use NULL not 0. diff --git a/gdb/NEWS b/gdb/NEWS index e08dd0da38..745444b439 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -82,6 +82,10 @@ record bts compile print Evaluate expression by using the compiler and print result. +tui enable +tui disable + Explicit commands for enabling and disabling tui mode. + * New options set max-completions diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index f8b048714f..445f64d01f 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2015-05-22 Andrew Burgess + + * gdb.texinfo (TUI): Include 'tui enable' in the introduction. + (TUI Commands): Add 'tui enable' and 'tui disable' details. + 2015-05-16 Doug Evans * guile.texi (Memory Ports in Guile): Document support for unbuffered diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 1665372337..e38fd314a2 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -24669,8 +24669,9 @@ is available. The TUI mode is enabled by default when you invoke @value{GDBN} as @samp{@value{GDBP} -tui}. You can also switch in and out of TUI mode while @value{GDBN} runs by -using various TUI commands and key bindings, such as @kbd{C-x C-a}. -@xref{TUI Keys, ,TUI Key Bindings}. +using various TUI commands and key bindings, such as @command{tui +enable} or @kbd{C-x C-a}. @xref{TUI Commands, ,TUI Commands} and +@ref{TUI Keys, ,TUI Key Bindings}. @node TUI Overview @section TUI Overview @@ -24944,6 +24945,16 @@ these commands will fail with an error, because it would not be possible or desirable to enable curses window management. @table @code +@item tui enable +@kindex tui enable +Activate TUI mode. The last active TUI window layout will be used if +TUI mode has prevsiouly been used in the current debugging session, +otherwise a default layout is used. + +@item tui disable +@kindex tui disable +Disable TUI mode, returning to the console interpreter. + @item info win @kindex info win List and give the size of all displayed windows. diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 308e7ae28b..838471d9b9 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -540,6 +540,22 @@ tui_disable (void) tui_update_gdb_sizes (); } +/* Command wrapper for enabling tui mode. */ + +static void +tui_enable_command (char *args, int from_tty) +{ + tui_enable (); +} + +/* Command wrapper for leaving tui mode. */ + +static void +tui_disable_command (char *args, int from_tty) +{ + tui_disable (); +} + void strcat_to_buf (char *buf, int buflen, const char *item_to_add) @@ -652,3 +668,21 @@ tui_get_command_dimension (unsigned int *width, *height = TUI_CMD_WIN->generic.height; return 1; } + +/* Provide a prototype to silence -Wmissing-prototypes. */ +extern initialize_file_ftype _initialize_tui; + +void +_initialize_tui (void) +{ + struct cmd_list_element **tuicmd; + + tuicmd = tui_get_cmd_list (); + + add_cmd ("enable", class_tui, tui_enable_command, + _("Enable TUI display mode."), + tuicmd); + add_cmd ("disable", class_tui, tui_disable_command, + _("Disable TUI display mode."), + tuicmd); +}