GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "target.h"
#include "value.h"
#include "ui-out.h"
#include "disasm.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "dis-asm.h"
#include "source.h"
#include "gdbsupport/gdb-safe-ctype.h"
#include <algorithm>
#include "gdbsupport/gdb_optional.h"
#include "valprint.h"
#include "cli/cli-style.h"
#include "objfiles.h"
Go to the source code of this file.
Classes | |
struct | deprecated_dis_line_entry |
struct | dis_line_entry |
struct | gdb_non_printing_buffer_disassembler |
Functions | |
static void | show_use_libopcodes_styling (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
static void | set_use_libopcodes_styling (const char *args, int from_tty, struct cmd_list_element *c) |
static hashval_t | hash_dis_line_entry (const void *item) |
static int | eq_dis_line_entry (const void *item_lhs, const void *item_rhs) |
static htab_t | allocate_dis_line_table (void) |
static void | add_dis_line_entry (htab_t table, struct symtab *symtab, int line) |
static int | line_has_code_p (htab_t table, struct symtab *symtab, int line) |
static bool | line_is_less_than (const deprecated_dis_line_entry &mle1, const deprecated_dis_line_entry &mle2) |
static int | dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout, CORE_ADDR low, CORE_ADDR high, int how_many, gdb_disassembly_flags flags, CORE_ADDR *end_pc) |
static void | do_mixed_source_and_assembly_deprecated (struct gdbarch *gdbarch, struct ui_out *uiout, struct symtab *symtab, CORE_ADDR low, CORE_ADDR high, int how_many, gdb_disassembly_flags flags) |
static void | do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout, struct symtab *main_symtab, CORE_ADDR low, CORE_ADDR high, int how_many, gdb_disassembly_flags flags) |
static void | do_assembly_only (struct gdbarch *gdbarch, struct ui_out *uiout, CORE_ADDR low, CORE_ADDR high, int how_many, gdb_disassembly_flags flags) |
static std::string | get_all_disassembler_options (struct gdbarch *gdbarch) |
static int | gdb_print_insn_1 (struct gdbarch *gdbarch, CORE_ADDR vma, struct disassemble_info *info) |
void | gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, gdb_disassembly_flags flags, int how_many, CORE_ADDR low, CORE_ADDR high) |
int | gdb_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr, struct ui_file *stream, int *branch_delay_insns) |
int | gdb_insn_length (struct gdbarch *gdbarch, CORE_ADDR addr) |
int | gdb_buffered_insn_length (struct gdbarch *gdbarch, const gdb_byte *insn, int max_len, CORE_ADDR addr) |
char * | get_disassembler_options (struct gdbarch *gdbarch) |
void | set_disassembler_options (const char *prospective_options) |
static void | set_disassembler_options_sfunc (const char *args, int from_tty, struct cmd_list_element *c) |
static void | show_disassembler_options_sfunc (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
static void | disassembler_options_completer (struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *word) |
void | _initialize_disasm () |
Variables | |
static std::string | prospective_options |
static bool | use_libopcodes_styling = true |
static bool | use_libopcodes_styling_option = use_libopcodes_styling |
void _initialize_disasm | ( | ) |
Definition at line 1517 of file disasm.c.
Referenced by initialize_all_files().
|
static |
Definition at line 161 of file disasm.c.
References dis_line_entry::line, and dis_line_entry::symtab.
Referenced by do_mixed_source_and_assembly().
|
static |
Definition at line 151 of file disasm.c.
References eq_dis_line_entry(), hash_dis_line_entry(), xcalloc(), and xfree().
Referenced by do_mixed_source_and_assembly().
|
static |
Definition at line 1491 of file disasm.c.
References complete_on_enum(), gdbarch_valid_disassembler_options(), and get_current_arch().
|
static |
Definition at line 951 of file disasm.c.
References dump_insns(), and flags.
Referenced by gdb_disassembly().
|
static |
Definition at line 720 of file disasm.c.
References add_dis_line_entry(), allocate_dis_line_table(), symtab::compunit(), DISASSEMBLY_FILENAME, dump_insns(), symtab_and_line::end, find_pc_line(), flags, gdb_insn_length(), linetable::item, linetable_entry::line, symtab_and_line::line, line_has_code_p(), symtab::linetable(), linetable::nitems, compunit_symtab::objfile(), linetable_entry::pc(), symtab_and_line::pc, print_source_lines(), PRINT_SOURCE_LINES_FILENAME, symtab_and_line::symtab, symtab_to_filename_for_display(), ui_out::text(), objfile::text_section_offset(), and linetable_entry::unrelocated_pc().
Referenced by gdb_disassembly().
|
static |
Definition at line 568 of file disasm.c.
References symtab::compunit(), DISASSEMBLY_FILENAME, dump_insns(), symtab_and_line::end, deprecated_dis_line_entry::end_pc, find_pc_line(), flags, linetable::item, deprecated_dis_line_entry::line, linetable_entry::line, line_is_less_than(), symtab::linetable(), linetable::nitems, compunit_symtab::objfile(), linetable_entry::pc(), print_source_lines(), PRINT_SOURCE_LINES_FILENAME, deprecated_dis_line_entry::start_pc, ui_out::text(), objfile::text_section_offset(), and linetable_entry::unrelocated_pc().
Referenced by gdb_disassembly().
|
static |
Definition at line 527 of file disasm.c.
References disasm_insn::addr, flags, gdb_pretty_print_disassembler::pretty_print_insn(), QUIT, and size.
Referenced by do_assembly_only(), do_mixed_source_and_assembly(), and do_mixed_source_and_assembly_deprecated().
|
static |
Definition at line 139 of file disasm.c.
References dis_line_entry::line, and dis_line_entry::symtab.
Referenced by allocate_dis_line_table().
int gdb_buffered_insn_length | ( | struct gdbarch * | gdbarch, |
const gdb_byte * | insn, | ||
int | max_len, | ||
CORE_ADDR | addr ) |
Definition at line 1281 of file disasm.c.
References gdb_disassemble_info::disasm_info(), and gdb_print_insn_1().
Referenced by amd64_relocate_instruction(), selftests::buffered_insn_length_test(), fixup_riprel(), and i386_relocate_instruction().
void gdb_disassembly | ( | struct gdbarch * | gdbarch, |
struct ui_out * | uiout, | ||
gdb_disassembly_flags | flags, | ||
int | how_many, | ||
CORE_ADDR | low, | ||
CORE_ADDR | high ) |
Definition at line 1184 of file disasm.c.
References DISASSEMBLY_SOURCE, DISASSEMBLY_SOURCE_DEPRECATED, do_assembly_only(), do_mixed_source_and_assembly(), do_mixed_source_and_assembly_deprecated(), find_pc_line_symtab(), flags, gdb_flush(), gdb_stdout, symtab::linetable(), and linetable::nitems.
Referenced by do_gdb_disassembly(), mi_cmd_disassemble(), and print_disassembly().
int gdb_insn_length | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr ) |
Definition at line 1230 of file disasm.c.
References gdb_print_insn(), and null_stream.
Referenced by arc_breakpoint_kind_from_pc(), btrace_compute_ftrace_bts(), do_mixed_source_and_assembly(), remote_target::download_tracepoint(), find_instruction_backward(), i386_fast_tracepoint_valid_at(), and record_btrace_frame_prev_register().
int gdb_print_insn | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | memaddr, | ||
struct ui_file * | stream, | ||
int * | branch_delay_insns ) |
Definition at line 1217 of file disasm.c.
References branch_delay_insns, and gdb_disassembler::print_insn().
Referenced by archpy_disassemble(), displaced_step_prepare_throw(), gdb_insn_length(), gdbscm_arch_disassemble(), print_formatted(), recpy_bt_insn_decoded(), and tui_disassemble().
|
static |
Definition at line 1089 of file disasm.c.
References ext_lang_print_insn(), and gdbarch_print_insn().
Referenced by gdb_buffered_insn_length(), and gdb_disassembler::print_insn().
|
static |
Definition at line 964 of file disasm.c.
References gdbarch_disassembler_options_implicit(), and get_disassembler_options().
Referenced by gdb_disassemble_info::gdb_disassemble_info().
char * get_disassembler_options | ( | struct gdbarch * | gdbarch | ) |
Definition at line 1292 of file disasm.c.
References gdbarch_disassembler_options().
Referenced by get_all_disassembler_options(), show_disassembler_options_sfunc(), and show_disassembly_style_sfunc().
|
static |
Definition at line 129 of file disasm.c.
References dis_line_entry::line, and dis_line_entry::symtab.
Referenced by allocate_dis_line_table().
|
static |
Definition at line 181 of file disasm.c.
References dis_line_entry::line, and dis_line_entry::symtab.
Referenced by do_mixed_source_and_assembly().
|
static |
Definition at line 335 of file disasm.c.
References deprecated_dis_line_entry::line, and deprecated_dis_line_entry::start_pc.
Referenced by do_mixed_source_and_assembly_deprecated().
void set_disassembler_options | ( | const char * | prospective_options | ) |
Definition at line 1301 of file disasm.c.
References gdb_printf(), gdb_stderr, gdbarch_disassembler_options(), gdbarch_valid_disassembler_options(), get_current_arch(), and prospective_options.
Referenced by set_disassembler_options_sfunc(), and set_disassembly_style_sfunc().
|
static |
Definition at line 1378 of file disasm.c.
References prospective_options, and set_disassembler_options().
|
static |
Definition at line 81 of file disasm.c.
References gdb_disassemble_info::disasm_info(), gdbarch_bfd_arch_info(), target_gdbarch(), use_libopcodes_styling, and use_libopcodes_styling_option.
|
static |
Definition at line 1385 of file disasm.c.
References gdb_printf(), gdb_puts(), gdbarch_valid_disassembler_options(), get_current_arch(), get_disassembler_options(), and name.
|
static |
Definition at line 58 of file disasm.c.
References gdb_disassemble_info::disasm_info(), gdb_printf(), gdbarch_bfd_arch_info(), target_gdbarch(), and use_libopcodes_styling.
|
static |
Definition at line 43 of file disasm.c.
Referenced by set_disassembler_options(), and set_disassembler_options_sfunc().
|
static |
Definition at line 48 of file disasm.c.
Referenced by set_use_libopcodes_styling(), show_use_libopcodes_styling(), gdb_disassembler::use_ext_lang_for_styling(), and gdb_disassembler::use_libopcodes_for_styling().
|
static |
Definition at line 53 of file disasm.c.
Referenced by set_use_libopcodes_styling().