[Lldb-commits] [lldb] r360966 - [CommandInterpreter] Accept blanks after `all` or [0-9]+ for bt.

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Thu May 16 18:03:22 PDT 2019


Author: davide
Date: Thu May 16 18:03:21 2019
New Revision: 360966

URL: http://llvm.org/viewvc/llvm-project?rev=360966&view=rev
Log:
[CommandInterpreter] Accept blanks after `all` or [0-9]+ for bt.

Previously "bt all    " would've failed as the regex didn't match
them.

Over the shoulder review by Jonas Devlieghere.

<rdar://problem/50824935>

Added:
    lldb/trunk/lit/Commands/command-backtrace.test
Modified:
    lldb/trunk/source/Interpreter/CommandInterpreter.cpp

Added: lldb/trunk/lit/Commands/command-backtrace.test
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Commands/command-backtrace.test?rev=360966&view=auto
==============================================================================
--- lldb/trunk/lit/Commands/command-backtrace.test (added)
+++ lldb/trunk/lit/Commands/command-backtrace.test Thu May 16 18:03:21 2019
@@ -0,0 +1,12 @@
+# Check basic functionality of command bt.
+# RUN: %lldb -s %s 2>&1 | FileCheck %s
+
+# Make sure this is not rejected by the parser as invalid syntax.
+# Blank characters after the '1' are important, as we're testing the parser.
+bt 1      
+# CHECK: error: invalid target
+
+# Make sure this is not rejected by the parser as invalid syntax.
+# Blank characters after the '1' are important, as we're testing the parser.
+bt all       
+# CHECK: error: invalid target

Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=360966&r1=360965&r2=360966&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Thu May 16 18:03:21 2019
@@ -758,12 +758,12 @@ void CommandInterpreter::LoadCommandDict
     // command if you wanted to backtrace three frames you would do "bt -c 3"
     // but the intention is to have this emulate the gdb "bt" command and so
     // now "bt 3" is the preferred form, in line with gdb.
-    if (bt_regex_cmd_up->AddRegexCommand("^([[:digit:]]+)$",
+    if (bt_regex_cmd_up->AddRegexCommand("^([[:digit:]]+)\\s*$",
                                          "thread backtrace -c %1") &&
-        bt_regex_cmd_up->AddRegexCommand("^-c ([[:digit:]]+)$",
+        bt_regex_cmd_up->AddRegexCommand("^-c ([[:digit:]]+)\\s*$",
                                          "thread backtrace -c %1") &&
-        bt_regex_cmd_up->AddRegexCommand("^all$", "thread backtrace all") &&
-        bt_regex_cmd_up->AddRegexCommand("^$", "thread backtrace")) {
+        bt_regex_cmd_up->AddRegexCommand("^all\\s*$", "thread backtrace all") &&
+        bt_regex_cmd_up->AddRegexCommand("^\\s*$", "thread backtrace")) {
       CommandObjectSP command_sp(bt_regex_cmd_up.release());
       m_command_dict[command_sp->GetCommandName()] = command_sp;
     }




More information about the lldb-commits mailing list