summaryrefslogtreecommitdiff
path: root/gdb/stack.c
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2002-01-13 20:19:28 +0000
committerKeith Seitz <keiths@redhat.com>2002-01-13 20:19:28 +0000
commit23d7e310c7b12ad7872d386cde6f79d0744c7177 (patch)
treef466f14c08b72af7185a1a13f4871d71f29dd5e2 /gdb/stack.c
parentf37e40ef2c375a752af07e7597eefdd996f4b46b (diff)
downloadgdb-23d7e310c7b12ad7872d386cde6f79d0744c7177.tar.gz
* stack.c (print_frame_info_base): Print the frame's pc
only if when print_frame_info_listing_hook is not defined.
Diffstat (limited to 'gdb/stack.c')
-rw-r--r--gdb/stack.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/gdb/stack.c b/gdb/stack.c
index 8300c65e249..007ddadb64d 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -399,20 +399,31 @@ print_frame_info_base (struct frame_info *fi, int level, int source, int args)
fi->pc);
if (!done)
{
- if (addressprint && mid_statement)
+ if (print_frame_info_listing_hook)
+ print_frame_info_listing_hook (sal.symtab, sal.line, sal.line + 1, 0);
+ else
{
+ /* We used to do this earlier, but that is clearly
+ wrong. This function is used by many different
+ parts of gdb, including normal_stop in infrun.c,
+ which uses this to print out the current PC
+ when we stepi/nexti into the middle of a source
+ line. Only the command line really wants this
+ behavior. Other UIs probably would like the
+ ability to decide for themselves if it is desired. */
+ if (addressprint && mid_statement)
+ {
#ifdef UI_OUT
- ui_out_field_core_addr (uiout, "addr", fi->pc);
- ui_out_text (uiout, "\t");
+ ui_out_field_core_addr (uiout, "addr", fi->pc);
+ ui_out_text (uiout, "\t");
#else
- print_address_numeric (fi->pc, 1, gdb_stdout);
- printf_filtered ("\t");
+ print_address_numeric (fi->pc, 1, gdb_stdout);
+ printf_filtered ("\t");
#endif
+ }
+
+ print_source_lines (sal.symtab, sal.line, sal.line + 1, 0);
}
- if (print_frame_info_listing_hook)
- print_frame_info_listing_hook (sal.symtab, sal.line, sal.line + 1, 0);
- else
- print_source_lines (sal.symtab, sal.line, sal.line + 1, 0);
}
current_source_line = max (sal.line - lines_to_list / 2, 1);
}