Add an option to objdump's disassembler to generate ascii art diagrams showing the...
authorThomas Troeger <tstroege@gmx.de>
Mon, 13 Jan 2020 12:36:55 +0000 (12:36 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 13 Jan 2020 12:36:55 +0000 (12:36 +0000)
commit1d67fe3b6e696fccb902d9919b9e58b7299a3205
tree84e284092b19da0c349671ccc287d8afd7c1c4b6
parenta4f2b7c5d931f2aa27851b59ae5817a6ee43cfcb
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.
binutils/ChangeLog
binutils/NEWS
binutils/doc/binutils.texi
binutils/objdump.c
opcodes/ChangeLog
opcodes/arm-dis.c
opcodes/i386-dis.c