diff options
author | Ed Maste <emaste@freebsd.org> | 2013-08-30 13:11:30 +0000 |
---|---|---|
committer | Ed Maste <emaste@freebsd.org> | 2013-08-30 13:11:30 +0000 |
commit | 7dcb77de0640f50a8eb2b06b7f04d2fba0ccafe5 (patch) | |
tree | c81621456b9669ada0af03a90932296d88d11e47 /lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp | |
parent | e3963d0d79eef3f3d88d1b0138978315fd393fb4 (diff) | |
download | bcm5719-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.cpp | 18 |
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) { |