Add LLDB_LOG_ERROR macro

Summary:
The difference between this and regular LLDB_LOG is that this one clears
the error object unconditionally.  This was inspired by the
ObjectFileELF bug (r322664), where the error object was being cleared
only if logging was enabled.

Reviewers: davide, zturner, jingham, clayborg

Subscribers: lldb-commits, emaste

Differential Revision: https://reviews.llvm.org/D42182

llvm-svn: 323753
This commit is contained in:
Pavel Labath
2018-01-30 12:19:34 +00:00
parent eb07016156
commit c561a6a920
3 changed files with 45 additions and 6 deletions

View File

@@ -3491,9 +3491,9 @@ size_t ObjectFileELF::ReadSectionData(Section *section,
size_t(section_data.GetByteSize())},
GetByteOrder() == eByteOrderLittle, GetAddressByteSize() == 8);
if (!Decompressor) {
LLDB_LOG(log, "Unable to initialize decompressor for section {0}: {1}",
section->GetName(), llvm::toString(Decompressor.takeError()));
consumeError(Decompressor.takeError());
LLDB_LOG_ERROR(log, Decompressor.takeError(),
"Unable to initialize decompressor for section {0}",
section->GetName());
return result;
}
auto buffer_sp =
@@ -3501,9 +3501,8 @@ size_t ObjectFileELF::ReadSectionData(Section *section,
if (auto Error = Decompressor->decompress(
{reinterpret_cast<char *>(buffer_sp->GetBytes()),
size_t(buffer_sp->GetByteSize())})) {
LLDB_LOG(log, "Decompression of section {0} failed: {1}",
section->GetName(), llvm::toString(std::move(Error)));
consumeError(std::move(Error));
LLDB_LOG_ERROR(log, std::move(Error), "Decompression of section {0} failed",
section->GetName());
return result;
}
section_data.SetData(buffer_sp);