[lldb/Commands] Fix, rename and document column number arg to breakpoint set.

We were incorrectly parsing the -C argument to breakpoint set as the
column breakpoint, even though according to the help this should be the
breakpoint command. This fixes that by renaming the option to -u, adding
it to help, and adding a test case.

Differential revision: https://reviews.llvm.org/D73284
This commit is contained in:
Jonas Devlieghere 2020-01-23 11:25:16 -08:00
parent 1624cba782
commit 6672a4f5b6
5 changed files with 11 additions and 2 deletions

View File

@ -590,6 +590,7 @@ enum CommandArgumentType {
eArgTypeWatchType,
eArgRawInput,
eArgTypeCommand,
eArgTypeColumnNum,
eArgTypeLastArg // Always keep this entry as the last entry in this
// enumeration!!
};

View File

@ -274,7 +274,7 @@ public:
m_func_name_type_mask |= eFunctionNameTypeBase;
break;
case 'C':
case 'u':
if (option_arg.getAsInteger(0, m_column))
error.SetErrorStringWithFormat("invalid column number: %s",
option_arg.str().c_str());

View File

@ -115,6 +115,8 @@ let Command = "breakpoint set" in {
def breakpoint_set_line : Option<"line", "l">, Group<1>, Arg<"LineNum">,
Required,
Desc<"Specifies the line number on which to set this breakpoint.">;
def breakpoint_set_column : Option<"column", "u">, Group<1>, Arg<"ColumnNum">,
Desc<"Specifies the column number on which to set this breakpoint.">;
def breakpoint_set_address : Option<"address", "a">, Group<2>,
Arg<"AddressOrExpression">, Required,
Desc<"Set the breakpoint at the specified address. If the address maps "

View File

@ -1105,7 +1105,8 @@ CommandObject::ArgumentTableEntry CommandObject::g_arguments_data[] = {
{ eArgTypeWatchpointIDRange, "watchpt-id-list", CommandCompletions::eNoCompletion, { nullptr, false }, "For example, '1-3' or '1 to 3'." },
{ eArgTypeWatchType, "watch-type", CommandCompletions::eNoCompletion, { nullptr, false }, "Specify the type for a watchpoint." },
{ eArgRawInput, "raw-input", CommandCompletions::eNoCompletion, { nullptr, false }, "Free-form text passed to a command without prior interpretation, allowing spaces without requiring quotes. To pass arguments and free form text put two dashes ' -- ' between the last argument and any raw input." },
{ eArgTypeCommand, "command", CommandCompletions::eNoCompletion, { nullptr, false }, "An LLDB Command line command." }
{ eArgTypeCommand, "command", CommandCompletions::eNoCompletion, { nullptr, false }, "An LLDB Command line command." },
{ eArgTypeColumnNum, "column", CommandCompletions::eNoCompletion, { nullptr, false }, "Column number in a source file." }
// clang-format on
};

View File

@ -0,0 +1,5 @@
# RUN: %clang_host -g -O0 %S/Inputs/main.c -o %t.out
# RUN: %lldb -b -o 'help breakpoint set' -o 'breakpoint set -f main.c -l 2 -u 21' %t.out | FileCheck %s
# CHECK: -u <column> ( --column <column> )
# CHECK: Specifies the column number on which to set this breakpoint.
# CHECK: at main.c:2:21