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; |