* breakpoint.c (mark_breakpoints_out): Make public.

(update_breakpoints_after_exec): Don't call mark_breakpoints_out
	here.  Update comment.
	* breakpoint.h (mark_breakpoints_out): Declare.

	* linux-nat.c (linux_handle_extended_wait): On
	TARGET_WAITKIND_EXECD, call mark_breakpoints_out.
	* inf-ttrace.c (inf_ttrace_wait): Likewise.
This commit is contained in:
Pedro Alves
2008-07-08 10:59:57 +00:00
parent cce9b6bff9
commit 25b22b0a6f
5 changed files with 42 additions and 7 deletions

View File

@@ -1758,6 +1758,16 @@ linux_handle_extended_wait (struct lwp_info *lp, int status,
linux_parent_pid = 0;
}
/* At this point, all inserted breakpoints are gone. Doing this
as soon as we detect an exec prevents the badness of deleting
a breakpoint writing the current "shadow contents" to lift
the bp. That shadow is NOT valid after an exec.
Note that we have to do this after the detach_breakpoints
call above, otherwise breakpoints wouldn't be lifted from the
parent on a vfork, because detach_breakpoints would think
that breakpoints are not inserted. */
mark_breakpoints_out ();
return 0;
}