<div dir="ltr">Thanks Ed, maybe it should be moved into Process:Detach() in fact? I would think that everyone would want to clear all breakpoint sites before detaching. Though I guess we couldn't use DisableAllBreakpointSites() there because DisableBreakpointSite() in the base Process class just errors out. We could use Target::CleanupProcess() or else just get the BreakpointLists from the Target and call ClearAllBreakpointSites() on them though. What do you think?<br>


</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 25, 2014 at 1:53 PM, Ed Maste <span dir="ltr"><<a href="mailto:emaste@freebsd.org" target="_blank">emaste@freebsd.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 25 March 2014 06:36, Andrew MacPherson <<a href="mailto:andrew.macp@gmail.com">andrew.macp@gmail.com</a>> wrote:<br>


> When detaching from a debugged process any breakpoint sites need to be<br>
> cleared before detaching so that they don't generate uncaught SIGTRAPs.<br>
> Target::CleanupProcess() seems to do the necessary cleanup so call this from<br>
> the ProcessLinux::WillDetach() method.<br>
><br>
> If this is the right fix and if it applies to other OSes as well maybe the<br>
> cleanup call should be moved into an earlier Process class in the hierarchy.<br>
<br>
</div></div>I fixed a similar issue on FreeBSD in r201724 by calling<br>
DisableAllBreakpointSites() in ProcessFreeBSD::DoDetach, based on<br>
ProcessGDBRemote::DoDetach.  I think you're right that this should be<br>
moved earlier, probably not in individual Process classes at all.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Ed<br>
</font></span></blockquote></div><br></div>