47 struct disassemble_info *info)
55 struct disassemble_info *info)
80 if (mle1->
line == 0 || mle2->
line == 0)
97 struct disassemble_info * di,
101 int num_displayed = 0;
110 for (pc = low; pc < high;)
112 char *filename = NULL;
118 if (num_displayed >= how_many)
144 if (filename != NULL)
155 const char *spacer =
"";
164 for (;old_pc < pc; old_pc++)
166 status = (*di->read_memory_func) (old_pc, &data, 1, di);
168 (*di->memory_error_func) (status, old_pc, di);
170 spacer, (
unsigned) data);
185 return num_displayed;
195 struct disassemble_info *di,
int nlines,
205 int out_of_order = 0;
207 int num_displayed = 0;
225 for (i = 0; i < nlines - 1 && le[i].
pc < low; i++);
229 for (; i < nlines - 1 && le[i].
pc < high; i++)
231 if (le[i].
line == le[i + 1].
line && le[i].pc == le[i + 1].pc)
242 mle[newlines].
end_pc = le[i + 1].
pc;
249 if (i == nlines - 1 && le[i].pc < high)
270 for (i = 0; i < newlines; i++)
273 if (mle[i].
line >= next_line)
278 if (next_line == mle[i].
line)
288 for (; next_line < mle[i].
line; next_line++)
290 struct cleanup *ui_out_list_chain_line;
291 struct cleanup *ui_out_tuple_chain_line;
293 ui_out_tuple_chain_line
298 ui_out_list_chain_line
320 next_line = mle[i].
line + 1;
325 num_displayed +=
dump_insns (gdbarch, uiout, di,
326 mle[i].start_pc, mle[i].end_pc,
327 how_many, flags, stb);
331 if (i == (newlines - 1) || mle[i + 1].
line > mle[i].
line)
339 if (how_many >= 0 && num_displayed >= how_many)
348 struct disassemble_info * di,
352 int num_displayed = 0;
357 num_displayed =
dump_insns (gdbarch, uiout, di, low, high, how_many,
367 fprintf_disasm (
void *stream,
const char *format, ...)
371 va_start (args, format);
378 struct disassemble_info
381 struct disassemble_info di;
383 init_disassemble_info (&di, file, fprintf_disasm);
384 di.flavour = bfd_target_unknown_flavour;
401 disassemble_init_for_target (&di);
407 char *file_string,
int flags,
int how_many,
431 else if (flags & DISASSEMBLY_SOURCE)
433 high, symtab, how_many, flags, stb);
447 struct disassemble_info di;
452 if (branch_delay_insns)
454 if (di.insn_info_valid)
455 *branch_delay_insns = di.branch_delay_insns;
457 *branch_delay_insns = 0;
474 static struct ui_file *null_stream = NULL;
491 gdb_buffered_insn_length_fprintf (
void *stream,
const char *format, ...)
500 struct disassemble_info *di,
504 init_disassemble_info (di, NULL, gdb_buffered_insn_length_fprintf);
510 di->buffer_length = max_len;
511 di->buffer_vma = addr;
518 disassemble_init_for_target (di);
528 struct disassemble_info di;
static int dis_asm_read_memory(bfd_vma memaddr, gdb_byte *myaddr, unsigned int len, struct disassemble_info *info)
#define DISASSEMBLY_SOURCE
void ui_out_field_stream(struct ui_out *uiout, const char *fldname, struct ui_file *stream)
void ui_out_field_int(struct ui_out *uiout, const char *fldname, int value)
#define DISASSEMBLY_OMIT_FNAME
static void dis_asm_print_address(bfd_vma addr, struct disassemble_info *info)
#define DISASSEMBLY_OMIT_PC
void print_address(struct gdbarch *, CORE_ADDR, struct ui_file *)
struct type ** const(pascal_builtin_types[])
static int branch_delay_insns
void ui_file_delete(struct ui_file *file)
int gdb_insn_length(struct gdbarch *gdbarch, CORE_ADDR addr)
struct ui_file * gdb_stdout
static int ATTRIBUTE_PRINTF(2, 3)
const char * pc_prefix(CORE_ADDR)
void ui_out_text(struct ui_out *uiout, const char *string)
static void do_mixed_source_and_assembly(struct gdbarch *gdbarch, struct ui_out *uiout, struct disassemble_info *di, int nlines, struct linetable_entry *le, CORE_ADDR low, CORE_ADDR high, struct symtab *symtab, int how_many, int flags, struct ui_file *stb)
int target_read_code(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
void null_cleanup(void *arg)
void memory_error(enum target_xfer_status err, CORE_ADDR memaddr)
static int compare_lines(const void *mle1p, const void *mle2p)
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)
struct cleanup * make_cleanup_ui_out_list_begin_end(struct ui_out *uiout, const char *id)
struct cleanup * make_cleanup_ui_out_tuple_begin_end(struct ui_out *uiout, const char *id)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
struct ui_file * ui_file_new(void)
void vfprintf_filtered(struct ui_file *stream, const char *format, va_list args)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
int gdb_print_insn(struct gdbarch *gdbarch, CORE_ADDR memaddr, struct ui_file *stream, int *branch_delay_insns)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
void print_source_lines(struct symtab *s, int line, int stopline, enum print_source_lines_flags flags)
struct ui_file * mem_fileopen(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)
static void do_ui_file_delete(void *arg)
#define DISASSEMBLY_FILENAME
int build_address_symbolic(struct gdbarch *, CORE_ADDR addr, int do_demangle, char **name, int *offset, char **filename, int *line, int *unmapped)
static void do_assembly_only(struct gdbarch *gdbarch, struct ui_out *uiout, struct disassemble_info *di, CORE_ADDR low, CORE_ADDR high, int how_many, int flags, struct ui_file *stb)
struct cleanup * make_cleanup_ui_file_delete(struct ui_file *arg)
static void gdb_buffered_insn_length_init_dis(struct gdbarch *gdbarch, struct disassemble_info *di, const gdb_byte *insn, int max_len, CORE_ADDR addr)
#define DISASSEMBLY_RAW_INSN
struct disassemble_info gdb_disassemble_info(struct gdbarch *gdbarch, struct ui_file *file)
static void dis_asm_memory_error(int status, bfd_vma memaddr, struct disassemble_info *info)
void ui_file_rewind(struct ui_file *file)
struct cleanup * make_final_cleanup(make_cleanup_ftype *function, void *arg)
void ui_out_field_core_addr(struct ui_out *uiout, const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address)
static int dump_insns(struct gdbarch *gdbarch, struct ui_out *uiout, struct disassemble_info *di, CORE_ADDR low, CORE_ADDR high, int how_many, int flags, struct ui_file *stb)
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
void ui_out_field_string(struct ui_out *uiout, const char *fldname, const char *string)
void gdb_flush(struct ui_file *file)
struct symtab * find_pc_line_symtab(CORE_ADDR pc)
int gdbarch_print_insn(struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
enum bfd_endian gdbarch_byte_order_for_code(struct gdbarch *gdbarch)
#define SYMTAB_LINETABLE(symtab)
int gdb_buffered_insn_length(struct gdbarch *gdbarch, const gdb_byte *insn, int max_len, CORE_ADDR addr)
void do_cleanups(struct cleanup *old_chain)
const ULONGEST const LONGEST len