[Lldb-commits] [lldb] 31b9aca - Reland "[lldb] Set return status to failed when adding a command error"
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Mon Jun 14 06:26:58 PDT 2021
Author: David Spickett
Date: 2021-06-14T14:26:47+01:00
New Revision: 31b9acaec5797e409afb83d665fc8816d8a37940
URL: https://github.com/llvm/llvm-project/commit/31b9acaec5797e409afb83d665fc8816d8a37940
DIFF: https://github.com/llvm/llvm-project/commit/31b9acaec5797e409afb83d665fc8816d8a37940.diff
LOG: Reland "[lldb] Set return status to failed when adding a command error"
This reverts commit ac031c8db2ce454a9b08f23192ce698e8bde4447.
SB API usage has been corrected.
Added:
lldb/test/Shell/Commands/command-backtrace-parser-1.test
lldb/test/Shell/Commands/command-backtrace-parser-2.test
Modified:
lldb/source/Interpreter/CommandReturnObject.cpp
lldb/test/API/commands/register/register/register_command/TestRegisters.py
Removed:
lldb/test/Shell/Commands/command-backtrace.test
################################################################################
diff --git a/lldb/source/Interpreter/CommandReturnObject.cpp b/lldb/source/Interpreter/CommandReturnObject.cpp
index c3f32a4c45a9e..531c1f246bd86 100644
--- a/lldb/source/Interpreter/CommandReturnObject.cpp
+++ b/lldb/source/Interpreter/CommandReturnObject.cpp
@@ -44,6 +44,8 @@ CommandReturnObject::CommandReturnObject(bool colors)
: m_out_stream(colors), m_err_stream(colors) {}
void CommandReturnObject::AppendErrorWithFormat(const char *format, ...) {
+ SetStatus(eReturnStatusFailed);
+
if (!format)
return;
va_list args;
@@ -98,6 +100,7 @@ void CommandReturnObject::AppendWarning(llvm::StringRef in_string) {
void CommandReturnObject::AppendError(llvm::StringRef in_string) {
if (in_string.empty())
return;
+ SetStatus(eReturnStatusFailed);
error(GetErrorStream()) << in_string.rtrim() << '\n';
}
@@ -114,7 +117,6 @@ void CommandReturnObject::SetError(llvm::StringRef error_str) {
return;
AppendError(error_str);
- SetStatus(eReturnStatusFailed);
}
// Similar to AppendError, but do not prepend 'Status: ' to message, and don't
@@ -124,6 +126,7 @@ void CommandReturnObject::AppendRawError(llvm::StringRef in_string) {
if (in_string.empty())
return;
GetErrorStream() << in_string;
+ SetStatus(eReturnStatusFailed);
}
void CommandReturnObject::SetStatus(ReturnStatus status) { m_status = status; }
diff --git a/lldb/test/API/commands/register/register/register_command/TestRegisters.py b/lldb/test/API/commands/register/register/register_command/TestRegisters.py
index 5ec46c175e621..2b56ca262a1ff 100644
--- a/lldb/test/API/commands/register/register/register_command/TestRegisters.py
+++ b/lldb/test/API/commands/register/register/register_command/TestRegisters.py
@@ -41,13 +41,18 @@ def test_register_commands(self):
self.expect("register read -a", MISSING_EXPECTED_REGISTERS,
substrs=['registers were unavailable'], matching=False)
+ all_registers = self.res.GetOutput()
+
if self.getArchitecture() in ['amd64', 'i386', 'x86_64']:
self.runCmd("register read xmm0")
- self.runCmd("register read ymm15") # may be available
- self.runCmd("register read bnd0") # may be available
+ if "ymm15 = " in all_registers:
+ self.runCmd("register read ymm15") # may be available
+ if "bnd0 = " in all_registers:
+ self.runCmd("register read bnd0") # may be available
elif self.getArchitecture() in ['arm', 'armv7', 'armv7k', 'arm64', 'arm64e', 'arm64_32']:
self.runCmd("register read s0")
- self.runCmd("register read q15") # may be available
+ if "q15 = " in all_registers:
+ self.runCmd("register read q15") # may be available
self.expect(
"register read -s 4",
@@ -397,8 +402,13 @@ def fp_register_write(self):
# Returns an SBValueList.
registerSets = currentFrame.GetRegisters()
for registerSet in registerSets:
- if 'advanced vector extensions' in registerSet.GetName().lower():
+ set_name = registerSet.GetName().lower()
+ if 'advanced vector extensions' in set_name:
has_avx = True
+ # Darwin reports AVX registers as part of "Floating Point Registers"
+ elif self.platformIsDarwin() and 'floating point registers' in set_name:
+ has_avx = registerSet.GetChildMemberWithName('ymm0').IsValid()
+
# FreeBSD/NetBSD reports missing register sets
diff erently
# at the moment and triggers false positive here.
# TODO: remove FreeBSD/NetBSD exception when we make unsupported
@@ -413,7 +423,8 @@ def fp_register_write(self):
self.write_and_read(currentFrame, "ymm7", new_value)
self.expect("expr $ymm0", substrs=['vector_type'])
else:
- self.runCmd("register read ymm0")
+ self.expect("register read ymm0", substrs=["Invalid register name 'ymm0'"],
+ error=True)
if has_mpx:
# Test write and read for bnd0.
@@ -428,7 +439,8 @@ def fp_register_write(self):
self.write_and_read(currentFrame, "bndstatus", new_value)
self.expect("expr $bndstatus", substrs = ['vector_type'])
else:
- self.runCmd("register read bnd0")
+ self.expect("register read bnd0", substrs=["Invalid register name 'bnd0'"],
+ error=True)
def convenience_registers(self):
"""Test convenience registers."""
@@ -450,7 +462,7 @@ def convenience_registers(self):
# Now write rax with a unique bit pattern and test that eax indeed
# represents the lower half of rax.
self.runCmd("register write rax 0x1234567887654321")
- self.expect("register read rax 0x1234567887654321",
+ self.expect("register read rax",
substrs=['0x1234567887654321'])
def convenience_registers_with_process_attach(self, test_16bit_regs):
diff --git a/lldb/test/Shell/Commands/command-backtrace-parser-1.test b/lldb/test/Shell/Commands/command-backtrace-parser-1.test
new file mode 100644
index 0000000000000..339c6664b3726
--- /dev/null
+++ b/lldb/test/Shell/Commands/command-backtrace-parser-1.test
@@ -0,0 +1,6 @@
+# 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
diff --git a/lldb/test/Shell/Commands/command-backtrace.test b/lldb/test/Shell/Commands/command-backtrace-parser-2.test
similarity index 50%
rename from lldb/test/Shell/Commands/command-backtrace.test
rename to lldb/test/Shell/Commands/command-backtrace-parser-2.test
index 2816f5f2e33ce..5f91cf30ac719 100644
--- a/lldb/test/Shell/Commands/command-backtrace.test
+++ b/lldb/test/Shell/Commands/command-backtrace-parser-2.test
@@ -1,11 +1,5 @@
-# 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 'all' are important, as we're testing the parser.
bt all
More information about the lldb-commits
mailing list