| Index: gdb/disasm.c
|
| diff --git a/gdb/disasm.c b/gdb/disasm.c
|
| index e3d3349200e64455ceed3aeac44b696ce201f417..09ae465b52a0609a48d886f6fb204f0109529345 100644
|
| --- a/gdb/disasm.c
|
| +++ b/gdb/disasm.c
|
| @@ -1,6 +1,6 @@
|
| /* Disassemble support for GDB.
|
|
|
| - Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2000-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -21,7 +21,7 @@
|
| #include "target.h"
|
| #include "value.h"
|
| #include "ui-out.h"
|
| -#include "gdb_string.h"
|
| +#include <string.h>
|
| #include "disasm.h"
|
| #include "gdbcore.h"
|
| #include "dis-asm.h"
|
| @@ -47,7 +47,7 @@ static int
|
| dis_asm_read_memory (bfd_vma memaddr, gdb_byte *myaddr, unsigned int len,
|
| struct disassemble_info *info)
|
| {
|
| - return target_read_memory (memaddr, myaddr, len);
|
| + return target_read_code (memaddr, myaddr, len);
|
| }
|
|
|
| /* Like memory_error with slightly different parameters. */
|
| @@ -122,7 +122,9 @@ dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| num_displayed++;
|
| }
|
| ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
|
| - ui_out_text (uiout, pc_prefix (pc));
|
| +
|
| + if ((flags & DISASSEMBLY_OMIT_PC) == 0)
|
| + ui_out_text (uiout, pc_prefix (pc));
|
| ui_out_field_core_addr (uiout, "address", gdbarch, pc);
|
|
|
| if (!build_address_symbolic (gdbarch, pc, 0, &name, &offset, &filename,
|
| @@ -204,10 +206,14 @@ do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| int out_of_order = 0;
|
| int next_line = 0;
|
| int num_displayed = 0;
|
| + enum print_source_lines_flags psl_flags = 0;
|
| struct cleanup *ui_out_chain;
|
| struct cleanup *ui_out_tuple_chain = make_cleanup (null_cleanup, 0);
|
| struct cleanup *ui_out_list_chain = make_cleanup (null_cleanup, 0);
|
|
|
| + if (flags & DISASSEMBLY_FILENAME)
|
| + psl_flags |= PRINT_SOURCE_LINES_FILENAME;
|
| +
|
| mle = (struct dis_line_entry *) alloca (nlines
|
| * sizeof (struct dis_line_entry));
|
|
|
| @@ -275,7 +281,7 @@ do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| ui_out_tuple_chain
|
| = make_cleanup_ui_out_tuple_begin_end (uiout,
|
| "src_and_asm_line");
|
| - print_source_lines (symtab, next_line, mle[i].line + 1, 0);
|
| + print_source_lines (symtab, next_line, mle[i].line + 1, psl_flags);
|
| }
|
| else
|
| {
|
| @@ -289,7 +295,7 @@ do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| = make_cleanup_ui_out_tuple_begin_end (uiout,
|
| "src_and_asm_line");
|
| print_source_lines (symtab, next_line, next_line + 1,
|
| - 0);
|
| + psl_flags);
|
| ui_out_list_chain_line
|
| = make_cleanup_ui_out_list_begin_end (uiout,
|
| "line_asm_insn");
|
| @@ -301,7 +307,7 @@ do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| ui_out_tuple_chain
|
| = make_cleanup_ui_out_tuple_begin_end (uiout,
|
| "src_and_asm_line");
|
| - print_source_lines (symtab, next_line, mle[i].line + 1, 0);
|
| + print_source_lines (symtab, next_line, mle[i].line + 1, psl_flags);
|
| }
|
| }
|
| else
|
| @@ -309,7 +315,7 @@ do_mixed_source_and_assembly (struct gdbarch *gdbarch, struct ui_out *uiout,
|
| ui_out_tuple_chain
|
| = make_cleanup_ui_out_tuple_begin_end (uiout,
|
| "src_and_asm_line");
|
| - print_source_lines (symtab, mle[i].line, mle[i].line + 1, 0);
|
| + print_source_lines (symtab, mle[i].line, mle[i].line + 1, psl_flags);
|
| }
|
|
|
| next_line = mle[i].line + 1;
|
|
|