summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/CommandObject.cpp
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-07-14 22:20:12 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-07-14 22:20:12 +0000
commit331eff3995c16e2080222b61063122aa9021e404 (patch)
treeb44363b9e4a7c981b419fd9558acc4253d30df8d /lldb/source/Interpreter/CommandObject.cpp
parentcbd3bb27d7fcfcfbb0e06f8cf6114976d9548ede (diff)
downloadbcm5719-llvm-331eff3995c16e2080222b61063122aa9021e404.tar.gz
bcm5719-llvm-331eff3995c16e2080222b61063122aa9021e404.zip
Fixed a crasher where entering 'help disasm' on the command line would crash lldb.
The reasom of the crash is because of a missing entry in the argument table corresponding to eArgTypeUnsignedInteger. Add such entry and modify the call site of the crash to go through a fail-fast API to retrieve the argument table. Add a regression test to TestHelp.py. llvm-svn: 135206
Diffstat (limited to 'lldb/source/Interpreter/CommandObject.cpp')
-rw-r--r--lldb/source/Interpreter/CommandObject.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Interpreter/CommandObject.cpp b/lldb/source/Interpreter/CommandObject.cpp
index b54b4e15a5e..635d9a58838 100644
--- a/lldb/source/Interpreter/CommandObject.cpp
+++ b/lldb/source/Interpreter/CommandObject.cpp
@@ -623,8 +623,9 @@ CommandObject::LookupArgumentName (const char *arg_name)
&& arg_name[len-1] == '>')
arg_name_str = arg_name_str.substr (1, len-2);
+ const ArgumentTableEntry *table = GetArgumentTable();
for (int i = 0; i < eArgTypeLastArg; ++i)
- if (arg_name_str.compare (g_arguments_data[i].arg_name) == 0)
+ if (arg_name_str.compare (table[i].arg_name) == 0)
return_type = g_arguments_data[i].arg_type;
return return_type;
@@ -778,6 +779,7 @@ CommandObject::g_arguments_data[] =
{ eArgTypeThreadID, "thread-id", CommandCompletions::eNoCompletion, { NULL, false }, "Thread ID number." },
{ eArgTypeThreadIndex, "thread-index", CommandCompletions::eNoCompletion, { NULL, false }, "Index into the process' list of threads." },
{ eArgTypeThreadName, "thread-name", CommandCompletions::eNoCompletion, { NULL, false }, "The thread's name." },
+ { eArgTypeUnsignedInteger, "unsigned-integer", CommandCompletions::eNoCompletion, { NULL, false }, "An unsigned integer." },
{ eArgTypeUnixSignal, "unix-signal", CommandCompletions::eNoCompletion, { NULL, false }, "A valid Unix signal name or number (e.g. SIGKILL, KILL or 9)." },
{ eArgTypeVarName, "variable-name", CommandCompletions::eNoCompletion, { NULL, false }, "The name of a variable in your program." },
{ eArgTypeValue, "value", CommandCompletions::eNoCompletion, { NULL, false }, "A value could be anything, depending on where and how it is used." },
OpenPOWER on IntegriCloud