From 7dcb77de0640f50a8eb2b06b7f04d2fba0ccafe5 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Fri, 30 Aug 2013 13:11:30 +0000 Subject: Move detach to FreeBSD- and Linux-specific classes. On Linux there is no separate notion of a process (vs. a thread) for ptrace(); each thread needs to be individually detached. On FreeBSD we have a separate process context, and we detach just it. Review: http://llvm-reviews.chandlerc.com/D1418 llvm-svn: 189666 --- lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp') diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp index 4a8f7b86254..06ad6da625e 100644 --- a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp @@ -122,6 +122,24 @@ ProcessFreeBSD::Terminate() { } +Error +ProcessFreeBSD::DoDetach(bool keep_stopped) +{ + Error error; + if (keep_stopped) + { + error.SetErrorString("Detaching with keep_stopped true is not currently supported on FreeBSD."); + return error; + } + + error = m_monitor->Detach(GetID()); + + if (error.Success()) + SetPrivateState(eStateDetached); + + return error; +} + bool ProcessFreeBSD::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thread_list) { -- cgit v1.2.3