diff options
author | Frank Ch. Eigler <fche@redhat.com> | 1998-10-01 11:48:25 +0000 |
---|---|---|
committer | Frank Ch. Eigler <fche@redhat.com> | 1998-10-01 11:48:25 +0000 |
commit | 6ee2da947e78c9634a4eca2000ea9a1f93b83ded (patch) | |
tree | ce487595407f866d587bba2708f6e34dfa78efa8 /gdb/breakpoint.c | |
parent | c85a8f0003681fbbcfff38dd48cf51f0154a385e (diff) | |
download | gdb-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.c | 20 |
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); } } } |