Have CommandObject::CheckRequirements() report the largest missing

requirement for a command instead of the smallest.  e.g. if a command
requires a Target, Process, Thread, and Frame, and none of those
are available, report the largest -- Target -- as being missing
instead of the smallest -- Frame.

Patch by Paul Osmialowski.

llvm-svn: 218181
This commit is contained in:
Jason Molenda 2014-09-20 09:14:31 +00:00
parent b8dbebb31c
commit e59b0d2c48
1 changed files with 18 additions and 3 deletions

View File

@ -236,19 +236,34 @@ CommandObject::CheckRequirements (CommandReturnObject &result)
if ((flags & eFlagRequiresProcess) && !m_exe_ctx.HasProcessScope())
{
result.AppendError (GetInvalidProcessDescription());
if (!m_exe_ctx.HasTargetScope())
result.AppendError (GetInvalidTargetDescription());
else
result.AppendError (GetInvalidProcessDescription());
return false;
}
if ((flags & eFlagRequiresThread) && !m_exe_ctx.HasThreadScope())
{
result.AppendError (GetInvalidThreadDescription());
if (!m_exe_ctx.HasTargetScope())
result.AppendError (GetInvalidTargetDescription());
else if (!m_exe_ctx.HasProcessScope())
result.AppendError (GetInvalidProcessDescription());
else
result.AppendError (GetInvalidThreadDescription());
return false;
}
if ((flags & eFlagRequiresFrame) && !m_exe_ctx.HasFrameScope())
{
result.AppendError (GetInvalidFrameDescription());
if (!m_exe_ctx.HasTargetScope())
result.AppendError (GetInvalidTargetDescription());
else if (!m_exe_ctx.HasProcessScope())
result.AppendError (GetInvalidProcessDescription());
else if (!m_exe_ctx.HasThreadScope())
result.AppendError (GetInvalidThreadDescription());
else
result.AppendError (GetInvalidFrameDescription());
return false;
}