summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBTarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBTarget.cpp')
-rw-r--r--lldb/source/API/SBTarget.cpp110
1 files changed, 50 insertions, 60 deletions
diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp
index f594827a1e2..dc06e7c9e5e 100644
--- a/lldb/source/API/SBTarget.cpp
+++ b/lldb/source/API/SBTarget.cpp
@@ -96,19 +96,19 @@ SBTarget::IsValid () const
SBProcess
SBTarget::GetProcess ()
{
-
SBProcess sb_process;
+ ProcessSP process_sp;
if (m_opaque_sp)
{
- Mutex::Locker api_locker (m_opaque_sp->GetAPIMutex());
- sb_process.SetProcess (m_opaque_sp->GetProcessSP());
+ process_sp = m_opaque_sp->GetProcessSP();
+ sb_process.SetSP (process_sp);
}
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
if (log)
{
log->Printf ("SBTarget(%p)::GetProcess () => SBProcess(%p)",
- m_opaque_sp.get(), sb_process.get());
+ m_opaque_sp.get(), process_sp.get());
}
return sb_process;
@@ -182,6 +182,7 @@ SBTarget::Launch
error.get());
}
SBProcess sb_process;
+ ProcessSP process_sp;
if (m_opaque_sp)
{
Mutex::Locker api_locker (m_opaque_sp->GetAPIMutex());
@@ -190,18 +191,17 @@ SBTarget::Launch
launch_flags |= eLaunchFlagDisableASLR;
StateType state = eStateInvalid;
- sb_process.SetProcess (m_opaque_sp->GetProcessSP());
- if (sb_process.IsValid())
+ process_sp = m_opaque_sp->GetProcessSP();
+ if (process_sp)
{
- state = sb_process->GetState();
+ state = process_sp->GetState();
- if (sb_process->IsAlive() && state != eStateConnected)
+ if (process_sp->IsAlive() && state != eStateConnected)
{
if (state == eStateAttaching)
error.SetErrorString ("process attach is in progress");
else
error.SetErrorString ("a process is already being debugged");
- sb_process.Clear();
return sb_process;
}
}
@@ -214,20 +214,20 @@ SBTarget::Launch
if (listener.IsValid())
{
error.SetErrorString ("process is connected and already has a listener, pass empty listener");
- sb_process.Clear();
return sb_process;
}
}
else
{
if (listener.IsValid())
- sb_process.SetProcess (m_opaque_sp->CreateProcess (listener.ref()));
+ process_sp = m_opaque_sp->CreateProcess (listener.ref());
else
- sb_process.SetProcess (m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener()));
+ process_sp = m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener());
}
- if (sb_process.IsValid())
+ if (process_sp)
{
+ sb_process.SetSP (process_sp);
if (getenv("LLDB_LAUNCH_FLAG_DISABLE_STDIO"))
launch_flags |= eLaunchFlagDisableSTDIO;
@@ -241,7 +241,7 @@ SBTarget::Launch
if (envp)
launch_info.GetEnvironmentEntries ().SetArguments (envp);
- error.SetError (sb_process->Launch (launch_info));
+ error.SetError (process_sp->Launch (launch_info));
if (error.Success())
{
// We we are stopping at the entry point, we can return now!
@@ -249,17 +249,17 @@ SBTarget::Launch
return sb_process;
// Make sure we are stopped at the entry
- StateType state = sb_process->WaitForProcessToStop (NULL);
+ StateType state = process_sp->WaitForProcessToStop (NULL);
if (state == eStateStopped)
{
// resume the process to skip the entry point
- error.SetError (sb_process->Resume());
+ error.SetError (process_sp->Resume());
if (error.Success())
{
// If we are doing synchronous mode, then wait for the
// process to stop yet again!
if (m_opaque_sp->GetDebugger().GetAsyncExecution () == false)
- sb_process->WaitForProcessToStop (NULL);
+ process_sp->WaitForProcessToStop (NULL);
}
}
}
@@ -278,7 +278,7 @@ SBTarget::Launch
if (log)
{
log->Printf ("SBTarget(%p)::Launch (...) => SBProceess(%p)",
- m_opaque_sp.get(), sb_process.get());
+ m_opaque_sp.get(), process_sp.get());
}
return sb_process;
@@ -305,23 +305,23 @@ SBTarget::AttachToProcessWithID
)
{
SBProcess sb_process;
+ ProcessSP process_sp;
if (m_opaque_sp)
{
Mutex::Locker api_locker (m_opaque_sp->GetAPIMutex());
StateType state = eStateInvalid;
- sb_process.SetProcess (m_opaque_sp->GetProcessSP());
- if (sb_process.IsValid())
+ process_sp = m_opaque_sp->GetProcessSP();
+ if (process_sp)
{
- state = sb_process->GetState();
+ state = process_sp->GetState();
- if (sb_process->IsAlive() && state != eStateConnected)
+ if (process_sp->IsAlive() && state != eStateConnected)
{
if (state == eStateAttaching)
error.SetErrorString ("process attach is in progress");
else
error.SetErrorString ("a process is already being debugged");
- sb_process.Clear();
return sb_process;
}
}
@@ -334,27 +334,27 @@ SBTarget::AttachToProcessWithID
if (listener.IsValid())
{
error.SetErrorString ("process is connected and already has a listener, pass empty listener");
- sb_process.Clear();
return sb_process;
}
}
else
{
if (listener.IsValid())
- sb_process.SetProcess (m_opaque_sp->CreateProcess (listener.ref()));
+ process_sp = m_opaque_sp->CreateProcess (listener.ref());
else
- sb_process.SetProcess (m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener()));
+ process_sp = m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener());
}
-
- if (sb_process.IsValid())
+ if (process_sp)
{
+ sb_process.SetSP (process_sp);
+
ProcessAttachInfo attach_info;
attach_info.SetProcessID (pid);
- error.SetError (sb_process->Attach (attach_info));
+ error.SetError (process_sp->Attach (attach_info));
// If we are doing synchronous mode, then wait for the
// process to stop!
if (m_opaque_sp->GetDebugger().GetAsyncExecution () == false)
- sb_process->WaitForProcessToStop (NULL);
+ process_sp->WaitForProcessToStop (NULL);
}
else
{
@@ -379,23 +379,23 @@ SBTarget::AttachToProcessWithName
)
{
SBProcess sb_process;
+ ProcessSP process_sp;
if (name && m_opaque_sp)
{
Mutex::Locker api_locker (m_opaque_sp->GetAPIMutex());
StateType state = eStateInvalid;
- sb_process.SetProcess (m_opaque_sp->GetProcessSP());
- if (sb_process.IsValid())
+ process_sp = m_opaque_sp->GetProcessSP();
+ if (process_sp)
{
- state = sb_process->GetState();
+ state = process_sp->GetState();
- if (sb_process->IsAlive() && state != eStateConnected)
+ if (process_sp->IsAlive() && state != eStateConnected)
{
if (state == eStateAttaching)
error.SetErrorString ("process attach is in progress");
else
error.SetErrorString ("a process is already being debugged");
- sb_process.Clear();
return sb_process;
}
}
@@ -408,28 +408,28 @@ SBTarget::AttachToProcessWithName
if (listener.IsValid())
{
error.SetErrorString ("process is connected and already has a listener, pass empty listener");
- sb_process.Clear();
return sb_process;
}
}
else
{
if (listener.IsValid())
- sb_process.SetProcess (m_opaque_sp->CreateProcess (listener.ref()));
+ process_sp = m_opaque_sp->CreateProcess (listener.ref());
else
- sb_process.SetProcess (m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener()));
+ process_sp = m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener());
}
- if (sb_process.IsValid())
+ if (process_sp)
{
+ sb_process.SetSP (process_sp);
ProcessAttachInfo attach_info;
attach_info.GetExecutableFile().SetFile(name, false);
attach_info.SetWaitForLaunch(wait_for);
- error.SetError (sb_process->Attach (attach_info));
+ error.SetError (process_sp->Attach (attach_info));
// If we are doing synchronous mode, then wait for the
// process to stop!
if (m_opaque_sp->GetDebugger().GetAsyncExecution () == false)
- sb_process->WaitForProcessToStop (NULL);
+ process_sp->WaitForProcessToStop (NULL);
}
else
{
@@ -454,18 +454,20 @@ SBTarget::ConnectRemote
)
{
SBProcess sb_process;
+ ProcessSP process_sp;
if (m_opaque_sp)
{
Mutex::Locker api_locker (m_opaque_sp->GetAPIMutex());
if (listener.IsValid())
- sb_process.SetProcess (m_opaque_sp->CreateProcess (listener.ref(), plugin_name));
+ process_sp = m_opaque_sp->CreateProcess (listener.ref(), plugin_name);
else
- sb_process.SetProcess (m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener(), plugin_name));
+ process_sp = m_opaque_sp->CreateProcess (m_opaque_sp->GetDebugger().GetListener(), plugin_name);
- if (sb_process.IsValid())
+ if (process_sp)
{
- error.SetError (sb_process->ConnectRemote (url));
+ sb_process.SetSP (process_sp);
+ error.SetError (process_sp->ConnectRemote (url));
}
else
{
@@ -513,26 +515,14 @@ SBTarget::operator != (const SBTarget &rhs) const
return m_opaque_sp.get() != rhs.m_opaque_sp.get();
}
-lldb_private::Target *
-SBTarget::operator ->() const
-{
- return m_opaque_sp.get();
-}
-
-lldb_private::Target *
-SBTarget::get() const
-{
- return m_opaque_sp.get();
-}
-
-const lldb::TargetSP &
-SBTarget::get_sp () const
+lldb::TargetSP
+SBTarget::GetSP () const
{
return m_opaque_sp;
}
void
-SBTarget::reset (const lldb::TargetSP& target_sp)
+SBTarget::SetSP (const lldb::TargetSP& target_sp)
{
m_opaque_sp = target_sp;
}
OpenPOWER on IntegriCloud