* disasm.h (DISASSEMBLY_FILENAME): New macro.

* disasm.c (do_mixed_source_and_assembly): Pass filename flag on
	to print_source_lines ().
	* symtab.h (PRINT_SOURCE_LINES_FILENAME): New print source lines
	flag.
	* source.c (print_source_lines_base): Prefix source line with
	filename if PRINT_SOURCE_LINES_FILENAME flag is set.
This commit is contained in:
Markus Metzger 2012-11-13 15:35:43 +00:00
parent dfaae88645
commit 4cd2972117
5 changed files with 28 additions and 5 deletions

View file

@ -1,3 +1,13 @@
2012-11-13 Markus Metzger <markus.t.metzger@intel.com>
* disasm.h (DISASSEMBLY_FILENAME): New macro.
* disasm.c (do_mixed_source_and_assembly): Pass filename flag on
to print_source_lines ().
* symtab.h (PRINT_SOURCE_LINES_FILENAME): New print source lines
flag.
* source.c (print_source_lines_base): Prefix source line with
filename if PRINT_SOURCE_LINES_FILENAME flag is set.
2012-11-13 Markus Metzger <markus.t.metzger@intel.com>
* symtab.h (print_source_lines_flags): New enum.

View file

@ -204,10 +204,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 +279,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 +293,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 +305,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 +313,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;

View file

@ -22,6 +22,7 @@
#define DISASSEMBLY_SOURCE (0x1 << 0)
#define DISASSEMBLY_RAW_INSN (0x1 << 1)
#define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
#define DISASSEMBLY_FILENAME (0x1 << 3)
struct ui_out;
struct ui_file;

View file

@ -1345,6 +1345,11 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
if (c == EOF)
break;
last_line_listed = current_source_line;
if (flags & PRINT_SOURCE_LINES_FILENAME)
{
ui_out_text (uiout, s->filename);
ui_out_text (uiout, ":");
}
xsnprintf (buf, sizeof (buf), "%d\t", current_source_line++);
ui_out_text (uiout, buf);
do

View file

@ -1167,7 +1167,10 @@ extern int identify_source_line (struct symtab *, int, int, CORE_ADDR);
enum print_source_lines_flags
{
/* Do not print an error message. */
PRINT_SOURCE_LINES_NOERROR = (1 << 0)
PRINT_SOURCE_LINES_NOERROR = (1 << 0),
/* Print the filename in front of the source lines. */
PRINT_SOURCE_LINES_FILENAME = (1 << 1)
};
extern void print_source_lines (struct symtab *, int, int,