diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 754d3c36d0..41d3434142 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Thu May 27 06:16:56 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * printcmd.c (print_address_symbolic): Append source filename and + linenumber of the symbol if print symbol-filename is on. + (initialize_printcmd): `set print symbol-filename'. + Wed May 26 13:46:16 1993 Stu Grossman (grossman@cygnus.com) * configure.in: Add config for Lynx target. Configure gdbserver diff --git a/gdb/printcmd.c b/gdb/printcmd.c index b5bf3d8d06..6aca2f53e0 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -73,6 +73,10 @@ static value last_examine_value; static unsigned int max_symbolic_offset = UINT_MAX; +/* Append the source filename and linenumber of the symbol when + printing a symbolic value as `' if set. */ +static int print_symbol_filename = 0; + /* Number of auto-display expression currently being displayed. So that we can disable it if we get an error or a signal within it. -1 when not doing one. */ @@ -582,9 +586,16 @@ print_address_symbolic (addr, stream, do_demangle, leadin) fputs_filtered ("<", stream); fputs_filtered (name, stream); if (addr != name_location) - fprintf_filtered (stream, "+%u>", (unsigned int)(addr - name_location)); - else - fputs_filtered (">", stream); + fprintf_filtered (stream, "+%u", (unsigned int)(addr - name_location)); + + /* Append source filename and line number if desired. */ + if (symbol && print_symbol_filename) + { + struct symtab_and_line sal = find_pc_line (addr, 0); + if (sal.symtab) + fprintf_filtered (stream, " at %s:%d", sal.symtab->filename, sal.line); + } + fputs_filtered (">", stream); } /* Print address ADDR symbolically on STREAM. @@ -2070,4 +2081,10 @@ environment, the value is printed in its own window."); "Set the largest offset that will be printed in form.", &setprintlist), &showprintlist); + add_show_from_set ( + add_set_cmd ("symbol-filename", no_class, var_boolean, + (char *)&print_symbol_filename, + "Set printing of source filename and line number with .", + &setprintlist), + &showprintlist); }