aboutsummaryrefslogtreecommitdiff
path: root/gdb/breakpoint.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>1998-10-01 11:48:25 +0000
committerFrank Ch. Eigler <fche@redhat.com>1998-10-01 11:48:25 +0000
commit6ee2da947e78c9634a4eca2000ea9a1f93b83ded (patch)
treece487595407f866d587bba2708f6e34dfa78efa8 /gdb/breakpoint.c
parentc85a8f0003681fbbcfff38dd48cf51f0154a385e (diff)
downloadgdb-6ee2da947e78c9634a4eca2000ea9a1f93b83ded.zip
gdb-6ee2da947e78c9634a4eca2000ea9a1f93b83ded.tar.gz
gdb-6ee2da947e78c9634a4eca2000ea9a1f93b83ded.tar.bz2
* Fix for PR 16567, brought over from d30v branch.
Thu Oct 1 15:39:27 EDT 1998 Frank Ch. Eigler <fche@cygnus.com> * breakpoint.c (bpstat_stop_status): Do not consider an untripped watchpoint as a "hit".
Diffstat (limited to 'gdb/breakpoint.c')
-rw-r--r--gdb/breakpoint.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 913953b..71799fa 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1441,6 +1441,7 @@ bpstat_stop_status (pc, not_a_breakpoint)
/* Don't stop. */
bs->print_it = print_it_noop;
bs->stop = 0;
+ --(b->hit_count); /* don't consider this a hit */
continue;
default:
/* Can't happen. */
@@ -1506,7 +1507,9 @@ bpstat_stop_status (pc, not_a_breakpoint)
else if (DECR_PC_AFTER_BREAK != 0 || must_shift_inst_regs)
real_breakpoint = 1;
- if (b->frame && b->frame != (get_current_frame ())->frame)
+ if (b->frame && b->frame != (get_current_frame ())->frame &&
+ (b->type == bp_step_resume &&
+ (get_current_frame ())->frame INNER_THAN b->frame))
bs->stop = 0;
else
{
@@ -2648,7 +2651,20 @@ resolve_sal_pc (sal)
if (sym != NULL)
{
fixup_symbol_section (sym, sal->symtab->objfile);
- sal->section = SYMBOL_BFD_SECTION (block_function (b));
+ sal->section = SYMBOL_BFD_SECTION (sym);
+ }
+ else
+ {
+ /* It really is worthwhile to have the section, so we'll just
+ have to look harder. This case can be executed if we have
+ line numbers but no functions (as can happen in assembly
+ source). */
+
+ struct minimal_symbol *msym;
+
+ msym = lookup_minimal_symbol_by_pc (sal->pc);
+ if (msym)
+ sal->section = SYMBOL_BFD_SECTION (msym);
}
}
}