[lldb] Fix that log enable's -f parameter causes LLDB to crash when it can't open the log file

We didn't do anything with the llvm::Error we get from `Open`, so when we end up in the
error case we just crash due to the llvm::Error sanity check. Also add the missing newline
behind the error message so it no longer messes with the next (lldb) prompt.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85970
This commit is contained in:
Raphael Isemann 2020-08-17 10:30:23 +02:00
parent c57ea1b48f
commit 867c347c32
2 changed files with 8 additions and 3 deletions

View File

@ -1164,11 +1164,11 @@ bool Debugger::EnableLog(llvm::StringRef channel,
flags |= File::eOpenOptionAppend;
else
flags |= File::eOpenOptionTruncate;
auto file = FileSystem::Instance().Open(
llvm::Expected<FileUP> file = FileSystem::Instance().Open(
FileSpec(log_file), flags, lldb::eFilePermissionsFileDefault, false);
if (!file) {
// FIXME: This gets garbled when called from the log command.
error_stream << "Unable to open log file: " << log_file;
error_stream << "Unable to open log file '" << log_file
<< "': " << llvm::toString(file.takeError()) << "\n";
return false;
}

View File

@ -15,3 +15,8 @@ class InvalidArgsLogTestCase(TestBase):
def test_disable_empty(self):
self.expect("log disable", error=True,
substrs=["error: log disable takes a log channel and one or more log types."])
@no_debug_info_test
def test_enable_empty(self):
self.expect("log enable lldb all -f this/is/not/a/valid/path", error=True,
substrs=["Unable to open log file 'this/is/not/a/valid/path': No such file or directory\n"])