* Fix for PR 16567, brought over from d30v branch.
authorFrank Ch. Eigler <fche@redhat.com>
Thu, 1 Oct 1998 11:48:25 +0000 (11:48 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Thu, 1 Oct 1998 11:48:25 +0000 (11:48 +0000)
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".

gdb/ChangeLog
gdb/breakpoint.c

index 21fea7f3ee4641393495e12961e53053c04ac925..ac82fea4368f5388fe0f1cea9e32dbe51d41c7b5 100644 (file)
@@ -1,3 +1,8 @@
+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".
+
 Thu Oct  1 20:52:39 1998  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * exec.c (exec_file_command), convex-tdep.c (exec_file_command),
index 913953b920778d8486e4e19ba58d0b374b2dc830..71799fa9e166ea0d9d7f6a86efb9cea5fb7a0bc6 100644 (file)
@@ -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);
            }
        }
     }