59 int mode, disasm_flags;
70 char *file_string = NULL;
82 FILE_OPT, LINE_OPT, NUM_OPT, START_OPT, END_OPT
84 static const struct mi_opt opts[] =
98 int opt =
mi_getopt (
"-data-disassemble", argc, argv, opts,
102 switch ((
enum opt) opt)
105 file_string = xstrdup (oarg);
110 line_num = atoi (oarg);
114 how_many = atoi (oarg);
133 if (!((line_seen && file_seen && num_seen && !start_seen && !end_seen)
134 || (line_seen && file_seen && !num_seen && !start_seen && !end_seen)
135 || (!line_seen && !file_seen && !num_seen && start_seen && end_seen)))
136 error (
_(
"-data-disassemble: Usage: ( [-f filename -l linenum [-n "
137 "howmany]] | [-s startaddr -e endaddr]) [--] mode."));
140 error (
_(
"-data-disassemble: Usage: [-f filename -l linenum "
141 "[-n howmany]] [-s startaddr -e endaddr] [--] mode."));
143 mode = atoi (argv[0]);
144 if (mode < 0 || mode > 3)
145 error (
_(
"-data-disassemble: Mode argument must be 0, 1, 2, or 3."));
158 if (line_seen && file_seen)
162 error (
_(
"-data-disassemble: Invalid filename."));
164 error (
_(
"-data-disassemble: Invalid line number"));
166 error (
_(
"-data-disassemble: "
167 "No function contains specified address"));
173 how_many, low, high);
#define DISASSEMBLY_SOURCE
struct symtab * lookup_symtab(const char *name)
void null_cleanup(void *arg)
int mi_getopt(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
void mi_cmd_disassemble(char *command, char **argv, int argc)
int find_pc_partial_function(CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr)
struct gdbarch * get_current_arch(void)
void gdb_disassembly(struct gdbarch *gdbarch, struct ui_out *uiout, char *file_string, int flags, int how_many, CORE_ADDR low, CORE_ADDR high)
int find_line_pc(struct symtab *symtab, int line, CORE_ADDR *pc)
CORE_ADDR parse_and_eval_address(const char *exp)
#define DISASSEMBLY_RAW_INSN
struct ui_out * current_uiout
void error(const char *fmt,...)
void do_cleanups(struct cleanup *old_chain)