diff options
author | Tom Tromey <tom@tromey.com> | 2019-10-21 11:21:14 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-11-05 15:23:36 -0700 |
commit | 1df2f9ef6cae23a08a50a3b2f33ce2664ce9ae9e (patch) | |
tree | a7b1c72b7e81c9e4179ea641fc5eb17fefe8e4bf /gdb/tui/tui-source.h | |
parent | 5d0510553eb447bf6861f4641b5ae3aaf9503a13 (diff) | |
download | gdb-1df2f9ef6cae23a08a50a3b2f33ce2664ce9ae9e.zip gdb-1df2f9ef6cae23a08a50a3b2f33ce2664ce9ae9e.tar.gz gdb-1df2f9ef6cae23a08a50a3b2f33ce2664ce9ae9e.tar.bz2 |
Style disassembly in the TUI
This patch changes the TUI disassembly window to style its contents.
The styling should be identical to what is seen in the CLI. This
involved a bit of rearrangement, so that the source and disassembly
windows could share both the copy_source_line utility function, and
the ability to react to changes in "set style enabled".
This version introduces a new function to strip the styling from the
address string when computing the length. As a byproduct, it also
removes the unused "insn_size" computation from
tui_disasm_window::set_contents.
gdb/ChangeLog
2019-11-05 Tom Tromey <tom@tromey.com>
* tui/tui-source.h (struct tui_source_window): Inline
constructor. Remove destructor.
<style_changed, m_observable>: Move to superclass.
* tui/tui-winsource.h (tui_copy_source_line): Declare.
(struct tui_source_window_base): Move private members to end.
<style_changed, m_observable>: Move from tui_source_window.
* tui/tui-winsource.c (tui_copy_source_line): Move from
tui-source.c. Rename from copy_source_line. Add special handling
for negative line number.
(tui_source_window_base::style_changed): Move from
tui_source_window.
(tui_source_window_base): Register observer.
(~tui_source_window_base): New.
* tui/tui-source.c (copy_source_line): Move to tui-winsource.c;
rename.
(tui_source_window::set_contents): Use tui_copy_source_line.
(tui_source_window::tui_source_window): Move to tui-source.h.
(tui_source_window::~tui_source_window): Remove.
(tui_source_window::style_changed): Move to superclass.
* tui/tui-disasm.c (tui_disassemble): Create string file with
styling, when possible. Add "addr_size" parameter.
(tui_disasm_window::set_contents): Use tui_copy_source_line.
Don't compute maximum size.
(len_without_escapes): New function
Change-Id: I8722635eeecbbb1633d943a65b856404c2d467b0
Diffstat (limited to 'gdb/tui/tui-source.h')
-rw-r--r-- | gdb/tui/tui-source.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h index 3ef737c..a2b7754 100644 --- a/gdb/tui/tui-source.h +++ b/gdb/tui/tui-source.h @@ -31,8 +31,10 @@ struct symtab; struct tui_source_window : public tui_source_window_base { - tui_source_window (); - ~tui_source_window (); + tui_source_window () + : tui_source_window_base (SRC_WIN) + { + } DISABLE_COPY_AND_ASSIGN (tui_source_window); @@ -70,17 +72,12 @@ protected: private: - void style_changed (); - /* Answer whether a particular line number or address is displayed in the current source window. */ bool line_is_displayed (int line) const; /* It is the resolved form as returned by symtab_to_fullname. */ gdb::unique_xmalloc_ptr<char> m_fullname; - - /* A token used to register and unregister an observer. */ - gdb::observers::token m_observable; }; #endif /* TUI_TUI_SOURCE_H */ |