Patch from Daniel Malea that cleans up the process parameters for Process/Thread classes for POSIX and Linux.

llvm-svn: 165806
This commit is contained in:
Greg Clayton 2012-10-12 16:23:23 +00:00
parent 3c2fabf27a
commit df3df25a71
6 changed files with 8 additions and 10 deletions

View File

@ -13,6 +13,8 @@
#include "lldb/Core/Stream.h"
#include "lldb/Symbol/Declaration.h"
#include <limits.h>
using namespace lldb;
using namespace lldb_private;

View File

@ -106,8 +106,7 @@ ProcessLinux::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thre
assert(m_monitor);
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
if (!thread_sp) {
ProcessSP me = this->shared_from_this();
thread_sp.reset(new POSIXThread(me, GetID()));
thread_sp.reset(new POSIXThread(*this, GetID()));
}
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))

View File

@ -967,7 +967,6 @@ ProcessMonitor::Launch(LaunchArgs *args)
{
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;
@ -1106,7 +1105,7 @@ ProcessMonitor::Launch(LaunchArgs *args)
// 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(processSP, pid));
inferior.reset(new POSIXThread(process, pid));
if (log)
log->Printf ("ProcessMonitor::%s() adding pid = %i", __FUNCTION__, pid);
process.GetThreadList().AddThread(inferior);
@ -1168,7 +1167,6 @@ ProcessMonitor::Attach(AttachArgs *args)
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));
@ -1196,7 +1194,7 @@ ProcessMonitor::Attach(AttachArgs *args)
monitor->m_pid = pid;
// Update the process thread list with the attached thread.
inferior.reset(new POSIXThread(processSP, pid));
inferior.reset(new POSIXThread(process, pid));
if (log)
log->Printf ("ProcessMonitor::%s() adding tid = %i", __FUNCTION__, pid);
process.GetThreadList().AddThread(inferior);

View File

@ -33,7 +33,7 @@ using namespace lldb;
using namespace lldb_private;
POSIXThread::POSIXThread(ProcessSP &process, lldb::tid_t tid)
POSIXThread::POSIXThread(Process &process, lldb::tid_t tid)
: Thread(process, tid),
m_frame_ap(0)
{

View File

@ -29,7 +29,7 @@ class POSIXThread
: public lldb_private::Thread
{
public:
POSIXThread(lldb::ProcessSP &process, lldb::tid_t tid);
POSIXThread(lldb_private::Process &process, lldb::tid_t tid);
virtual ~POSIXThread();

View File

@ -510,8 +510,7 @@ ProcessPOSIX::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_thre
assert(m_monitor);
ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
if (!thread_sp) {
ProcessSP me = this->shared_from_this();
thread_sp.reset(new POSIXThread(me, GetID()));
thread_sp.reset(new POSIXThread(*this, GetID()));
}
if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))