diff options
author | Pedro Alves <palves@redhat.com> | 2016-08-10 23:03:29 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-08-10 23:03:29 +0100 |
commit | 73971819031d74eb846805a9fbfad04ba1dff500 (patch) | |
tree | 84afc3ce706b1c3654b49fa4c7966ce40c3585f3 /gdb/breakpoint.h | |
parent | b2b6a7dab91de9a616e1d76c869d127c5752b9e6 (diff) | |
download | gdb-73971819031d74eb846805a9fbfad04ba1dff500.zip gdb-73971819031d74eb846805a9fbfad04ba1dff500.tar.gz gdb-73971819031d74eb846805a9fbfad04ba1dff500.tar.bz2 |
Plumb enum remove_bp_reason all the way to target_remove_breakpoint
So the target knows whether we're detaching breakpoints.
Nothing uses the parameter in this patch yet.
gdb/ChangeLog:
2016-08-10 Pedro Alves <palves@redhat.com>
PR gdb/19187
* break-catch-sig.c (signal_catchpoint_remove_location): Adjust
interface.
* break-catch-syscall.c (remove_catch_syscall):
* breakpoint.c (enum remove_bp_reason): Moved to breakpoint.h.
(remove_breakpoint_1): Pass 'reason' down.
(remove_catch_fork, remove_catch_vfork, remove_catch_solib)
(remove_catch_exec, remove_watchpoint, remove_masked_watchpoint)
(base_breakpoint_remove_location, bkpt_remove_location)
(bkpt_probe_remove_location, bkpt_probe_remove_location): Adjust
interface.
* breakpoint.h (enum remove_bp_reason): Moved here from
breakpoint.c.
(struct breakpoint_ops) <remove_location>: Add 'reason' parameter.
* corelow.c (core_remove_breakpoint): New function.
(init_core_ops): Install it as to_remove_breakpoint method.
* exec.c (exec_remove_breakpoint): New function.
(init_exec_ops): Install it as to_remove_breakpoint method.
* mem-break.c (memory_remove_breakpoint): Adjust interface.
* record-btrace.c (record_btrace_remove_breakpoint): Adjust
interface.
* record-full.c (record_full_remove_breakpoint)
(record_full_core_remove_breakpoint): Adjust interface.
* remote.c (remote_remove_breakpoint): Adjust interface.
* target-debug.h (target_debug_print_enum_remove_bp_reason): New
macro.
* target-delegates.c: Regenerate.
* target.c (target_remove_breakpoint): Add 'reason' parameter.
* target.h (struct target_ops) <to_remove_breakpoint>: Add
'reason' parameter.
(target_remove_breakpoint, memory_remove_breakpoint): Add 'reason'
parameter.
Diffstat (limited to 'gdb/breakpoint.h')
-rw-r--r-- | gdb/breakpoint.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 5f06772..4bdf0d5 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -39,6 +39,18 @@ struct linespec_result; struct linespec_sals; struct event_location; +/* Why are we removing the breakpoint from the target? */ + +enum remove_bp_reason +{ + /* A regular remove. Remove the breakpoint and forget everything + about it. */ + REMOVE_BREAKPOINT, + + /* Detach the breakpoints from a fork child. */ + DETACH_BREAKPOINT, +}; + /* This is the maximum number of bytes a breakpoint instruction can take. Feel free to increase it. It's just used in a few places to size arrays that should be independent of the target @@ -519,7 +531,7 @@ struct breakpoint_ops with the "insert" method above. Return 0 for success, 1 if the breakpoint, watchpoint or catchpoint type is not supported, -1 for failure. */ - int (*remove_location) (struct bp_location *); + int (*remove_location) (struct bp_location *, enum remove_bp_reason reason); /* Return true if it the target has stopped due to hitting breakpoint location BL. This function does not check if we |