diff options
author | Tom Tromey <tromey@redhat.com> | 2012-01-24 21:31:24 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-01-24 21:31:24 +0000 |
commit | 09ac7c10d43e1cbbebdc90e9f7b044d34488f2ec (patch) | |
tree | 2c3742b49ef1f700752e854ca1070c96481248ad /gdb/breakpoint.h | |
parent | 86eb7e951a825be0c81726558621161edf6858e9 (diff) | |
download | gdb-09ac7c10d43e1cbbebdc90e9f7b044d34488f2ec.zip gdb-09ac7c10d43e1cbbebdc90e9f7b044d34488f2ec.tar.gz gdb-09ac7c10d43e1cbbebdc90e9f7b044d34488f2ec.tar.bz2 |
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.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 8a8d5f2..dbae228 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 *); |