diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Linux')
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp index 0551596f4cc..dfc92887fa8 100644 --- a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -1794,14 +1794,20 @@ NativeProcessLinux::Detach () { Error error; - // Tell ptrace to detach from the process. - if (GetID () != LLDB_INVALID_PROCESS_ID) - error = Detach (GetID ()); - // Stop monitoring the inferior. m_sigchld_handle.reset(); - // No error. + // Tell ptrace to detach from the process. + if (GetID () == LLDB_INVALID_PROCESS_ID) + return error; + + for (auto thread_sp : m_threads) + { + Error e = Detach(thread_sp->GetID()); + if (e.Fail()) + error = e; // Save the error, but still attempt to detach from other threads. + } + return error; } |

