Linux fix patch from Dmitry Vyukov.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151072 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/Linux/ProcessLinux.cpp b/source/Plugins/Process/Linux/ProcessLinux.cpp
index a8c33bc..69d54cc 100644
--- a/source/Plugins/Process/Linux/ProcessLinux.cpp
+++ b/source/Plugins/Process/Linux/ProcessLinux.cpp
@@ -31,10 +31,10 @@
//------------------------------------------------------------------------------
// Static functions.
-Process*
-ProcessLinux::CreateInstance(Target& target, Listener &listener)
+ProcessSP
+ProcessLinux::CreateInstance(Target &target, Listener &listener, const FileSpec *)
{
- return new ProcessLinux(target, listener);
+ return ProcessSP(new ProcessLinux(target, listener));
}
void
@@ -105,8 +105,10 @@
// FIXME: We should be using tid, not pid.
assert(m_monitor);
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
- if (!thread_sp)
- thread_sp.reset(new POSIXThread(*this, GetID()));
+ if (!thread_sp) {
+ ProcessSP me = this->shared_from_this();
+ thread_sp.reset(new POSIXThread(me, GetID()));
+ }
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))
log->Printf ("ProcessLinux::%s() updated pid = %i", __FUNCTION__, GetID());