From 0fd8e87fea23317d3db05d5d4ec5c97a5250bb21 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Wed, 24 Jun 2009 16:41:30 +0000 Subject: * breakpoint.h (set_longjmp_breakpoint): Add THREAD argument. (enum bptype): Add bp_longjmp_master. * breakpoint.c (create_longjmp_master_breakpoint): New function. (update_breakpoints_after_exec): Handle bp_longjmp_master breakpoints. Call create_longjmp_master_breakpoint. (print_it_typical, bpstat_stop_status, bpstat_what, print_one_breakpoint_location, allocate_bp_location, mention, delete_command, breakpoint_re_set_one): Handle bp_longjmp_master. (breakpoint_re_set): Call create_longjmp_master_breakpoint. (create_longjmp_breakpoint): Delete. (set_longjmp_breakpoint): Add THREAD argument. Reimplement to install momentary clones of bp_longjmp_master breakpoints. * infcmd.c (step_1): Pass thread to set_longjmp_breakpoint. --- gdb/breakpoint.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gdb/breakpoint.h') diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 17f627b..1b711c0 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -110,6 +110,13 @@ enum bptype bp_overlay_event, + /* Master copies of longjmp breakpoints. These are always installed + as soon as an objfile containing longjmp is loaded, but they are + always disabled. While necessary, temporary clones of bp_longjmp + type will be created and enabled. */ + + bp_longjmp_master, + bp_catchpoint, bp_tracepoint, @@ -765,7 +772,7 @@ extern void update_breakpoints_after_exec (void); inferior_ptid. */ extern int detach_breakpoints (int); -extern void set_longjmp_breakpoint (void); +extern void set_longjmp_breakpoint (int thread); extern void delete_longjmp_breakpoint (int thread); extern void enable_overlay_breakpoints (void); -- cgit v1.1