summaryrefslogtreecommitdiff
path: root/gdb/breakpoint.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-01-24 21:31:23 +0000
committerTom Tromey <tromey@redhat.com>2012-01-24 21:31:23 +0000
commit59d922bc748faf76b7f7477953ae34fe7d043e11 (patch)
tree45bc01349619de09eddc25e46d8c2cbdc8251782 /gdb/breakpoint.h
parent5eb09c030ab6d18adeea75261b148ed325c51cc0 (diff)
downloadgdb-59d922bc748faf76b7f7477953ae34fe7d043e11.tar.gz
2012-01-24 Pedro Alves <palves@redhat.com>
* breakpoint.c (bpstat_check_location, bpstat_stop_status, pc_at_non_inline_function): Add `ws' parameter, and pass it down. (breakpoint_hit_catch_fork, breakpoint_hit_catch_vfork) (breakpoint_hit_catch_syscall, breakpoint_hit_catch_exec): Add `ws' parameter. (breakpoint_hit_ranged_breakpoint): Add `ws' parameter. Return false for events other than TARGET_SIGNAL_TRAP. (breakpoint_hit_watchpoint, base_breakpoint_breakpoint_hit): Add `ws' parameter. (bkpt_breakpoint_hit): Add `ws' parameter. Return false for events other than TARGET_SIGNAL_TRAP. (tracepoint_breakpoint_hit): Add `ws' parameter. * breakpoint.h (struct breakpoint_ops) <breakpoint_hit>: Add `ws' parameter. (bpstat_stop_status): Same. (pc_at_non_inline_function): Same. * infrun.c (handle_syscall_event, handle_inferior_event): Adjust to pass the current event's waitstatus to bpstat_stop_status and pc_at_non_inline_function.
Diffstat (limited to 'gdb/breakpoint.h')
-rw-r--r--gdb/breakpoint.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 8a8d5f27b79..dbae2280cd1 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -438,9 +438,14 @@ struct breakpoint_ops
/* Return true if it the target has stopped due to hitting
breakpoint location BL. This function does not check if we
- should stop, only if BL explains the stop. */
- int (*breakpoint_hit) (const struct bp_location *bl, struct address_space *,
- CORE_ADDR);
+ should stop, only if BL explains the stop. ASPACE is the address
+ space in which the event occurred, BP_ADDR is the address at
+ which the inferior stopped, and WS is the target_waitstatus
+ describing the event. */
+ int (*breakpoint_hit) (const struct bp_location *bl,
+ struct address_space *aspace,
+ CORE_ADDR bp_addr,
+ const struct target_waitstatus *ws);
/* Check internal conditions of the breakpoint referred to by BS.
If we should not stop for this breakpoint, set BS->stop to 0. */
@@ -774,7 +779,8 @@ extern void bpstat_clear (bpstat *);
extern bpstat bpstat_copy (bpstat);
extern bpstat bpstat_stop_status (struct address_space *aspace,
- CORE_ADDR pc, ptid_t ptid);
+ CORE_ADDR pc, ptid_t ptid,
+ const struct target_waitstatus *ws);
/* This bpstat_what stuff tells wait_for_inferior what to do with a
breakpoint (a challenging task).
@@ -1405,7 +1411,8 @@ extern struct breakpoint *iterate_over_breakpoints (int (*) (struct breakpoint *
have been inlined. */
extern int pc_at_non_inline_function (struct address_space *aspace,
- CORE_ADDR pc);
+ CORE_ADDR pc,
+ const struct target_waitstatus *ws);
extern int user_breakpoint_p (struct breakpoint *);