From: "Arsen Arsenović" <arsen@aarsen.me>
To: gdb-patches@sourceware.org
Cc: "Arsen Arsenović" <arsen@aarsen.me>
Subject: [PATCH v2] gdb/tui: add a vsplit layout
Date: Sat, 4 Nov 2023 13:47:44 +0100 [thread overview]
Message-ID: <20231104130153.3649198-1-arsen@aarsen.me> (raw)
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.
---
Afternoon!
v1:
https://inbox.sourceware.org/20231104014343.3199584-1-arsen@aarsen.me/
Changes since v1:
- Updated the completion.exp test for layout completions.
With that changed, the diff between the testsuite run before and after
this patch appears to have nothing relevant to the patch (though, I'm
still not fully clear on how to interpret the GDB results).
This is also the only test the Linaro buildbot reported, so I suspect
that this revision should be fine.
Thanks in advance, apologies for the inconvenience, and have a lovely
day! :-)
gdb/doc/gdb.texinfo | 4 ++++
gdb/testsuite/gdb.tui/completion.exp | 2 +-
gdb/testsuite/gdb.tui/tui-layout.exp | 5 ++++-
gdb/tui/tui-layout.c | 11 +++++++++++
4 files changed, 20 insertions(+), 2 deletions(-)
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/completion.exp b/gdb/testsuite/gdb.tui/completion.exp
index 9cf8dc2ee25..4110045d117 100644
--- a/gdb/testsuite/gdb.tui/completion.exp
+++ b/gdb/testsuite/gdb.tui/completion.exp
@@ -50,7 +50,7 @@ proc test_tab_completion {input_line expected_re} {
if { [readline_is_used] } {
with_test_prefix "completion of layout names" {
- test_tab_completion "layout" "asm *next *prev *regs *split *src *"
+ test_tab_completion "layout" "asm *next *prev *regs *split *src *vsplit *"
}
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
next reply other threads:[~2023-11-04 13:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-04 12:47 Arsen Arsenović [this message]
2023-11-04 13:05 ` Eli Zaretskii
2023-11-04 14:14 ` Arsen Arsenović
2023-11-04 14:25 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231104130153.3649198-1-arsen@aarsen.me \
--to=arsen@aarsen.me \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox