public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gdb/tui: add a vsplit layout
@ 2023-11-03 20:34 Arsen Arsenović
  2023-11-04 10:39 ` Arsen Arsenović
  0 siblings, 1 reply; 2+ messages in thread
From: Arsen Arsenović @ 2023-11-03 20:34 UTC (permalink / raw)
  To: gdb-patches; +Cc: Arsen Arsenović

The usual 'split' layout features a vertical stack that inadequately
makes use of widely-used widescreen displays.  This layout displays the
same information but in a horizontal stack in a way that's quite handy
for debugging on wide screens.
---
Evening!

For a long time now, I've been using the layout added by this patch for
debugging on my widescreen monitor, and it has been working well, and
I've shared this layout with other folks before.

In particular, at some point in the past I shared it with Bruno Haible,
who got quite accustomed to it, and was surprised to find that it's
missing on a new box he did not have his gdbinit on.  He suggested that
I should propose this layout for inclusion in GDB proper.

This seems sound to me, since vsplit is a natural counterpart to the
usual split layout already shipped with GDB.

This patch adds the vsplit layout and a corresponding test.

Tested on x86_64-pc-linux-gnu.

Have a lovely night!

 gdb/doc/gdb.texinfo                  |  4 ++++
 gdb/testsuite/gdb.tui/tui-layout.exp |  5 ++++-
 gdb/tui/tui-layout.c                 | 11 +++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index db1a82ec838..209af3a4b0e 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -30604,6 +30604,10 @@ Display the assembly and command windows.
 @item split
 Display the source, assembly, and command windows.
 
+@item vsplit
+Display the source and assembly side by side, and the command window
+below them.
+
 @item regs
 When in @code{src} layout display the register, source, and command
 windows.  When in @code{asm} or @code{split} layout display the
diff --git a/gdb/testsuite/gdb.tui/tui-layout.exp b/gdb/testsuite/gdb.tui/tui-layout.exp
index 90f27c5eac1..ea99d8f6ef9 100644
--- a/gdb/testsuite/gdb.tui/tui-layout.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout.exp
@@ -83,13 +83,16 @@ proc test_layout_or_focus {layout_name terminal execution} {
 	} elseif {$layout_name == "split"} {
 	    Term::check_box "src box" 0 0 80 8
 	    Term::check_box "asm box" 0 7 80 8
+	} elseif {$layout_name == "vsplit"} {
+	    Term::check_box "src box" 0 0 40 15
+	    Term::check_box "asm box" 39 0 41 15
 	}
     }
 }
 
 foreach_with_prefix terminal {ansi dumb} {
     foreach_with_prefix execution {false true} {
-	foreach_with_prefix layout {"asm" "reg" "src" "split"} {
+	foreach_with_prefix layout {"asm" "reg" "src" "split" "vsplit"} {
 	    test_layout_or_focus $layout $terminal $execution
 	}
     }
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 159445dc520..824ed282622 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -1184,6 +1184,17 @@ initialize_layouts ()
   layout->add_window (CMD_NAME, 1);
   add_layout_command ("split", layout);
 
+  layout = new tui_layout_split ();
+  {
+    auto vsplit_top_half  = std::make_unique<tui_layout_split> (false);
+    vsplit_top_half->add_window (SRC_NAME, 1);
+    vsplit_top_half->add_window (DISASSEM_NAME, 1);
+    layout->add_split (std::move (vsplit_top_half), 1);
+    layout->add_window (STATUS_NAME, 0);
+    layout->add_window (CMD_NAME, 1);
+    add_layout_command ("vsplit", layout);
+  }
+
   layout = new tui_layout_split ();
   layout->add_window (DATA_NAME, 1);
   layout->add_window (SRC_NAME, 1);
-- 
2.42.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] gdb/tui: add a vsplit layout
  2023-11-03 20:34 [PATCH] gdb/tui: add a vsplit layout Arsen Arsenović
@ 2023-11-04 10:39 ` Arsen Arsenović
  0 siblings, 0 replies; 2+ messages in thread
From: Arsen Arsenović @ 2023-11-04 10:39 UTC (permalink / raw)
  To: Arsen Arsenović; +Cc: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 447 bytes --]


Arsen Arsenović <arsen@aarsen.me> writes:

>  gdb/doc/gdb.texinfo                  |  4 ++++
>  gdb/testsuite/gdb.tui/tui-layout.exp |  5 ++++-
>  gdb/tui/tui-layout.c                 | 11 +++++++++++
>  3 files changed, 19 insertions(+), 1 deletion(-)

Ah!  Seems that I forgot to update one of the tests (completion.exp,
test for tui layout completions) and that I somehow missed that.  Will
roll a v2 soon..
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-11-04 10:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-03 20:34 [PATCH] gdb/tui: add a vsplit layout Arsen Arsenović
2023-11-04 10:39 ` Arsen Arsenović

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).