* breakpoint.c (single_step_breakpoint_inserted_here_p): New function.
authorUlrich Weigand <uweigand@de.ibm.com>
Fri, 11 May 2007 12:44:34 +0000 (12:44 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Fri, 11 May 2007 12:44:34 +0000 (12:44 +0000)
(breakpoint_inserted_here_p): Call it.
(software_breakpoint_inserted_here_p): Likewise.

gdb/ChangeLog
gdb/breakpoint.c

index 16d9c4842f60b6309a4feb3b594d40470e259485..fa244ec09085da428402aa67fa6bc02aee6e0402 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * breakpoint.c (single_step_breakpoint_inserted_here_p): New function.
+       (breakpoint_inserted_here_p): Call it.
+       (software_breakpoint_inserted_here_p): Likewise.
+
 2007-05-10  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * inf-ptrace.c (inf_ptrace_register_u_offset): Adapt parameter list.
index 23b5f1d8b8b21849107f21e70cb6b1db415d66ca..176a17cdbe57e8d70d8b5501b40699046be39055 100644 (file)
@@ -202,6 +202,8 @@ static void tcatch_command (char *arg, int from_tty);
 
 static void ep_skip_leading_whitespace (char **s);
 
+static int single_step_breakpoint_inserted_here_p (CORE_ADDR pc);
+
 /* Prototypes for exported functions. */
 
 /* If FALSE, gdb will not use hardware support for watchpoints, even
@@ -1841,6 +1843,10 @@ breakpoint_inserted_here_p (CORE_ADDR pc)
        }
     }
 
+  /* Also check for software single-step breakpoints.  */
+  if (single_step_breakpoint_inserted_here_p (pc))
+    return 1;
+
   return 0;
 }
 
@@ -1872,6 +1878,10 @@ software_breakpoint_inserted_here_p (CORE_ADDR pc)
        }
     }
 
+  /* Also check for software single-step breakpoints.  */
+  if (single_step_breakpoint_inserted_here_p (pc))
+    return 1;
+
   return 0;
 }
 
@@ -7951,6 +7961,23 @@ remove_single_step_breakpoints (void)
     }
 }
 
+/* Check whether a software single-step breakpoint is inserted at PC.  */
+
+static int
+single_step_breakpoint_inserted_here_p (CORE_ADDR pc)
+{
+  int i;
+
+  for (i = 0; i < 2; i++)
+    {
+      struct bp_target_info *bp_tgt = single_step_breakpoints[i];
+      if (bp_tgt && bp_tgt->placed_address == pc)
+       return 1;
+    }
+
+  return 0;
+}
+
 \f
 /* This help string is used for the break, hbreak, tbreak and thbreak commands.
    It is defined as a macro to prevent duplication.