If we are attached to a platform, then make sure that we can verify that a process exists when attaching by "pid" before we try and do a lengthy command that could take a while to timeout.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164738 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBTarget.cpp b/source/API/SBTarget.cpp
index 75014f0..e7ae0d6 100644
--- a/source/API/SBTarget.cpp
+++ b/source/API/SBTarget.cpp
@@ -853,10 +853,19 @@
if (attach_pid != LLDB_INVALID_PROCESS_ID)
{
PlatformSP platform_sp = target_sp->GetPlatform();
- ProcessInstanceInfo instance_info;
- if (platform_sp->GetProcessInfo(attach_pid, instance_info))
+ // See if we can pre-verify if a process exists or not
+ if (platform_sp && platform_sp->IsConnected())
{
- attach_info.SetUserID(instance_info.GetEffectiveUserID());
+ ProcessInstanceInfo instance_info;
+ if (platform_sp->GetProcessInfo(attach_pid, instance_info))
+ {
+ attach_info.SetUserID(instance_info.GetEffectiveUserID());
+ }
+ else
+ {
+ error.ref().SetErrorStringWithFormat("no process found with process ID %llu", attach_pid);
+ return sb_process;
+ }
}
}
error.SetError (process_sp->Attach (attach_info));