Author: Jonas Devlieghere Date: 2020-01-27T15:11:00-08:00 New Revision: 223a209027b44daeac53508bea154bc29314bddb
URL: https://github.com/llvm/llvm-project/commit/223a209027b44daeac53508bea154bc29314bddb DIFF: https://github.com/llvm/llvm-project/commit/223a209027b44daeac53508bea154bc29314bddb.diff LOG: [lldb/Commands] Make column available through _regexp-break Update _regexp-break to interpret main.c:8:21 as: breakpoint set --line 8 --column 21 Differential revision: https://reviews.llvm.org/D73314 Added: Modified: lldb/source/Interpreter/CommandInterpreter.cpp lldb/test/Shell/Commands/command-breakpoint-col.test Removed: ################################################################################ diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index fc482e6bd33a..aedd71b8df09 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -500,7 +500,10 @@ void CommandInterpreter::LoadCommandDictionary() { m_command_dict["language"] = CommandObjectSP(new CommandObjectLanguage(*this)); + // clang-format off const char *break_regexes[][2] = { + {"^(.*[^[:space:]])[[:space:]]*:[[:space:]]*([[:digit:]]+)[[:space:]]*:[[:space:]]*([[:digit:]]+)[[:space:]]*$", + "breakpoint set --file '%1' --line %2 --column %3"}, {"^(.*[^[:space:]])[[:space:]]*:[[:space:]]*([[:digit:]]+)[[:space:]]*$", "breakpoint set --file '%1' --line %2"}, {"^/([^/]+)/$", "breakpoint set --source-pattern-regexp '%1'"}, @@ -515,6 +518,7 @@ void CommandInterpreter::LoadCommandDictionary() { "breakpoint set --name '%1' --skip-prologue=0"}, {"^[\"']?(.*[^[:space:]\"'])[\"']?[[:space:]]*$", "breakpoint set --name '%1'"}}; + // clang-format on size_t num_regexes = llvm::array_lengthof(break_regexes); @@ -523,6 +527,9 @@ void CommandInterpreter::LoadCommandDictionary() { *this, "_regexp-break", "Set a breakpoint using one of several shorthand formats.", "\n" + "_regexp-break <filename>:<linenum>:<colnum>\n" + " main.c:12:21 // Break at line 12 and column " + "21 of main.c\n\n" "_regexp-break <filename>:<linenum>\n" " main.c:12 // Break at line 12 of " "main.c\n\n" @@ -546,7 +553,7 @@ void CommandInterpreter::LoadCommandDictionary() { "current file\n" " // containing text 'break " "here'.\n", - 2, + 3, CommandCompletions::eSymbolCompletion | CommandCompletions::eSourceFileCompletion, false)); @@ -573,6 +580,9 @@ void CommandInterpreter::LoadCommandDictionary() { *this, "_regexp-tbreak", "Set a one-shot breakpoint using one of several shorthand formats.", "\n" + "_regexp-break <filename>:<linenum>:<colnum>\n" + " main.c:12:21 // Break at line 12 and column " + "21 of main.c\n\n" "_regexp-break <filename>:<linenum>\n" " main.c:12 // Break at line 12 of " "main.c\n\n" diff --git a/lldb/test/Shell/Commands/command-breakpoint-col.test b/lldb/test/Shell/Commands/command-breakpoint-col.test index 65e66a362a59..65c1e2207943 100644 --- a/lldb/test/Shell/Commands/command-breakpoint-col.test +++ b/lldb/test/Shell/Commands/command-breakpoint-col.test @@ -1,7 +1,10 @@ # UNSUPPORTED: system-windows # # 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. +# RUN: %lldb -b -o 'help breakpoint set' -o 'breakpoint set -f main.c -l 2 -u 21' %t.out | FileCheck %s --check-prefix HELP --check-prefix CHECK +# RUN: %lldb -b -o 'help _regexp-break' -o 'b main.c:2:21' %t.out | FileCheck %s --check-prefix HELP-REGEX --check-prefix CHECK +# HELP: -u <column> ( --column <column> ) +# HELP: Specifies the column number on which to set this breakpoint. +# HELP-REGEX: _regexp-break <filename>:<linenum>:<colnum> +# HELP-REGEX: main.c:12:21{{.*}}Break at line 12 and column 21 of main.c # CHECK: at main.c:2:21 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits