Add more styling to "disassemble"
authorTom Tromey <tom@tromey.com>
Fri, 19 Jul 2019 04:07:10 +0000 (22:07 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 6 Aug 2019 17:37:51 +0000 (11:37 -0600)
commit046bebe1c0a367687bd693eb4594fcdcba0b8f7e
tree38fdfa265e21d04c7bed98491f3bb7b4a8185ad8
parentddbcedf5de138bc83d5d16554a3f44163dcaef7a
Add more styling to "disassemble"

This adds more styling to the disassemble command.  In particular,
addresses and function names in the disassembly are now styled.

This required fixing a small latent bug in set_output_style.  This
function always passed NULL to emit_style_escape; but when writing to
a file other than gdb_stdout, it should emit the style escape
directly.  (FWIW this is another argument for better integrating the
pager with ui_file and getting rid of this entire layer.)

gdb/ChangeLog
2019-08-06  Tom Tromey  <tom@tromey.com>

* utils.c (set_output_style): Sometimes pass stream to
emit_style_escape.
* ui-out.h (class ui_out) <can_emit_style_escape>: Declare.
* record-btrace.c (btrace_insn_history): Update.
* mi/mi-out.h (class mi_ui_out) <can_emit_style_escape>: New
method.
* disasm.h (gdb_pretty_print_disassembler): Add uiout parameter.
Update initializers.
<m_uiout>: New field.
<m_di>: Move lower.
* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
Remove "uiout" parameter.
(dump_insns): Update.
* cli-out.h (class cli_ui_out) <can_emit_style_escape>: Declare.
* cli-out.c (cli_ui_out::can_emit_style_escape): New method.

gdb/testsuite/ChangeLog
2019-08-06  Tom Tromey  <tom@tromey.com>

* gdb.base/style.exp: Add disassemble test.
* gdb.base/style.c (some_called_function): New function.
(main): Use it.
12 files changed:
gdb/ChangeLog
gdb/cli-out.c
gdb/cli-out.h
gdb/disasm.c
gdb/disasm.h
gdb/mi/mi-out.h
gdb/record-btrace.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/style.c
gdb/testsuite/gdb.base/style.exp
gdb/ui-out.h
gdb/utils.c