summaryrefslogtreecommitdiff
path: root/binutils/doc
diff options
context:
space:
mode:
authorThomas Troeger <tstroege@gmx.de>2020-01-13 12:36:55 +0000
committerNick Clifton <nickc@redhat.com>2020-01-13 12:36:55 +0000
commit1d67fe3b6e696fccb902d9919b9e58b7299a3205 (patch)
tree84e284092b19da0c349671ccc287d8afd7c1c4b6 /binutils/doc
parenta4f2b7c5d931f2aa27851b59ae5817a6ee43cfcb (diff)
downloadbinutils-gdb-1d67fe3b6e696fccb902d9919b9e58b7299a3205.tar.gz
Add an option to objdump's disassembler to generate ascii art diagrams showing the destinations of flow control instructions.
binutils* objdump.c (visualize_jumps, color_output, extended_color_output) (detected_jumps): New variables. (usage): Add the new jump visualization options. (option_values): Add new option value. (long_options): Add the new option. (jump_info_new, jump_info_free): New functions. (jump_info_min_address, jump_info_max_address): Likewise. (jump_info_end_address, jump_info_is_start_address): Likewise. (jump_info_is_end_address, jump_info_size): Likewise. (jump_info_unlink, jump_info_insert): Likewise. (jump_info_add_front, jump_info_move_linked): Likewise. (jump_info_intersect, jump_info_merge): Likewise. (jump_info_sort, jump_info_visualize_address): Likewise. (disassemble_jumps): New function - used to locate jumps. (disassemble_bytes): Add ascii art generation. (disassemble_section): Add scan to locate jumps. (main): Parse the new visualization option. * doc/binutils.texi: Document the new feature. * NEWS: Mention the new feature. opcodes * arm-dis.c (print_insn_arm): Fill in insn info fields for control flow instructions. (print_insn_thumb16, print_insn_thumb32): Likewise. (print_insn): Initialize the insn info. * i386-dis.c (print_insn): Initialize the insn info fields, and detect jumps.
Diffstat (limited to 'binutils/doc')
-rw-r--r--binutils/doc/binutils.texi12
1 files changed, 12 insertions, 0 deletions
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 71af6c5fcfb..669bee968f1 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -2169,6 +2169,7 @@ objdump [@option{-a}|@option{--archive-headers}]
[@option{--prefix=}@var{prefix}]
[@option{--prefix-strip=}@var{level}]
[@option{--insn-width=}@var{width}]
+ [@option{--visualize-jumps[=color|=extended-color|=off]}
[@option{-V}|@option{--version}]
[@option{-H}|@option{--help}]
@var{objfile}@dots{}
@@ -2681,6 +2682,17 @@ This is the default when @option{--prefix-addresses} is used.
Display @var{width} bytes on a single line when disassembling
instructions.
+@item --visualize-jumps[=color|=extended-color|=off]
+Visualize jumps that stay inside a function by drawing ASCII art between
+the start and target addresses. The optional @option{=color} argument
+adds color to the output using simple terminal colors. Alternatively
+the @option{=extended-color} argument will add color using 8bit
+colors, but these might not work on all terminals.
+
+If it is necessary to disable the @option{visualize-jumps} option
+after it has previously been enabled then use
+@option{visualize-jumps=off}.
+
@item -W[lLiaprmfFsoRtUuTgAckK]
@itemx --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
@include debug.options.texi