diff options
author | Jason Molenda <jmolenda@apple.com> | 2014-09-20 09:14:31 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2014-09-20 09:14:31 +0000 |
commit | e59b0d2c48c43f3350b210c72efe9aea3df1c15b (patch) | |
tree | 20fe4a971369688a74758b8f0aa9c2e65733afac /lldb/source | |
parent | b8dbebb31c5d191e766e5e4bc6ea5b19b9bec0d5 (diff) | |
download | bcm5719-llvm-e59b0d2c48c43f3350b210c72efe9aea3df1c15b.tar.gz bcm5719-llvm-e59b0d2c48c43f3350b210c72efe9aea3df1c15b.zip |
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
Diffstat (limited to 'lldb/source')
-rw-r--r-- | lldb/source/Interpreter/CommandObject.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/lldb/source/Interpreter/CommandObject.cpp b/lldb/source/Interpreter/CommandObject.cpp index d8eade836ba..f1a4609c093 100644 --- a/lldb/source/Interpreter/CommandObject.cpp +++ b/lldb/source/Interpreter/CommandObject.cpp @@ -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; } |