Linux fix patch from Dmitry Vyukov.
llvm-svn: 151072
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
index ed69b97..6c35b7e 100644
--- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
+++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
@@ -966,6 +966,7 @@
{
ProcessMonitor *monitor = args->m_monitor;
ProcessLinux &process = monitor->GetProcess();
+ lldb::ProcessSP processSP = process.shared_from_this();
const char **argv = args->m_argv;
const char **envp = args->m_envp;
const char *stdin_path = args->m_stdin_path;
@@ -1104,7 +1105,7 @@
// Update the process thread list with this new thread.
// FIXME: should we be letting UpdateThreadList handle this?
// FIXME: by using pids instead of tids, we can only support one thread.
- inferior.reset(new POSIXThread(process, pid));
+ inferior.reset(new POSIXThread(processSP, pid));
if (log)
log->Printf ("ProcessMonitor::%s() adding pid = %i", __FUNCTION__, pid);
process.GetThreadList().AddThread(inferior);
@@ -1166,6 +1167,7 @@
ProcessMonitor *monitor = args->m_monitor;
ProcessLinux &process = monitor->GetProcess();
+ lldb::ProcessSP processSP = process.shared_from_this();
lldb::ThreadSP inferior;
LogSP log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_PROCESS));
@@ -1191,7 +1193,7 @@
}
// Update the process thread list with the attached thread.
- inferior.reset(new POSIXThread(process, pid));
+ inferior.reset(new POSIXThread(processSP, pid));
if (log)
log->Printf ("ProcessMonitor::%s() adding tid = %i", __FUNCTION__, pid);
process.GetThreadList().AddThread(inferior);