summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2013-08-30 13:11:30 +0000
committerEd Maste <emaste@freebsd.org>2013-08-30 13:11:30 +0000
commit7dcb77de0640f50a8eb2b06b7f04d2fba0ccafe5 (patch)
treec81621456b9669ada0af03a90932296d88d11e47 /lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
parente3963d0d79eef3f3d88d1b0138978315fd393fb4 (diff)
downloadbcm5719-llvm-7dcb77de0640f50a8eb2b06b7f04d2fba0ccafe5.tar.gz
bcm5719-llvm-7dcb77de0640f50a8eb2b06b7f04d2fba0ccafe5.zip
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
Diffstat (limited to 'lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp')
-rw-r--r--lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp18
1 files changed, 18 insertions, 0 deletions
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)
{
OpenPOWER on IntegriCloud