GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Functions | Variables
disasm.c File Reference
#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
 

Function Documentation

◆ _initialize_disasm()

void _initialize_disasm ( )

Definition at line 1517 of file disasm.c.

Referenced by initialize_all_files().

◆ add_dis_line_entry()

static void add_dis_line_entry ( htab_t table,
struct symtab * symtab,
int line )
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().

◆ allocate_dis_line_table()

static htab_t allocate_dis_line_table ( void )
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().

◆ disassembler_options_completer()

static void disassembler_options_completer ( struct cmd_list_element * ignore,
completion_tracker & tracker,
const char * text,
const char * word )
static

◆ do_assembly_only()

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

Definition at line 951 of file disasm.c.

References dump_insns(), and flags.

Referenced by gdb_disassembly().

◆ do_mixed_source_and_assembly()

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

◆ do_mixed_source_and_assembly_deprecated()

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

◆ dump_insns()

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

◆ eq_dis_line_entry()

static int eq_dis_line_entry ( const void * item_lhs,
const void * item_rhs )
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().

◆ gdb_buffered_insn_length()

int gdb_buffered_insn_length ( struct gdbarch * gdbarch,
const gdb_byte * insn,
int max_len,
CORE_ADDR addr )

◆ gdb_disassembly()

void gdb_disassembly ( struct gdbarch * gdbarch,
struct ui_out * uiout,
gdb_disassembly_flags flags,
int how_many,
CORE_ADDR low,
CORE_ADDR high )

◆ gdb_insn_length()

int gdb_insn_length ( struct gdbarch * gdbarch,
CORE_ADDR addr )

◆ gdb_print_insn()

int gdb_print_insn ( struct gdbarch * gdbarch,
CORE_ADDR memaddr,
struct ui_file * stream,
int * branch_delay_insns )

◆ gdb_print_insn_1()

static int gdb_print_insn_1 ( struct gdbarch * gdbarch,
CORE_ADDR vma,
struct disassemble_info * info )
static

◆ get_all_disassembler_options()

static std::string get_all_disassembler_options ( struct gdbarch * gdbarch)
static

◆ get_disassembler_options()

char * get_disassembler_options ( struct gdbarch * gdbarch)

◆ hash_dis_line_entry()

static hashval_t hash_dis_line_entry ( const void * item)
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().

◆ line_has_code_p()

static int line_has_code_p ( htab_t table,
struct symtab * symtab,
int line )
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().

◆ line_is_less_than()

static bool line_is_less_than ( const deprecated_dis_line_entry & mle1,
const deprecated_dis_line_entry & mle2 )
static

◆ set_disassembler_options()

void set_disassembler_options ( const char * prospective_options)

◆ set_disassembler_options_sfunc()

static void set_disassembler_options_sfunc ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

Definition at line 1378 of file disasm.c.

References prospective_options, and set_disassembler_options().

◆ set_use_libopcodes_styling()

static void set_use_libopcodes_styling ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

◆ show_disassembler_options_sfunc()

static void show_disassembler_options_sfunc ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

◆ show_use_libopcodes_styling()

static void show_use_libopcodes_styling ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Variable Documentation

◆ prospective_options

std::string prospective_options
static

Definition at line 43 of file disasm.c.

Referenced by set_disassembler_options(), and set_disassembler_options_sfunc().

◆ use_libopcodes_styling

bool use_libopcodes_styling = true
static

◆ use_libopcodes_styling_option

bool use_libopcodes_styling_option = use_libopcodes_styling
static

Definition at line 53 of file disasm.c.

Referenced by set_use_libopcodes_styling().