summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Core/Module.h3
-rw-r--r--lldb/source/Core/Module.cpp18
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp6
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp17
4 files changed, 29 insertions, 15 deletions
diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h
index 73b79b94823..04add8984a2 100644
--- a/lldb/include/lldb/Core/Module.h
+++ b/lldb/include/lldb/Core/Module.h
@@ -1016,6 +1016,9 @@ public:
void
LogMessage (Log *log, const char *format, ...) __attribute__ ((format (printf, 3, 4)));
+ void
+ LogMessageVerboseBacktrace (Log *log, const char *format, ...) __attribute__ ((format (printf, 3, 4)));
+
void
ReportWarning (const char *format, ...) __attribute__ ((format (printf, 2, 3)));
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index d2606576aa0..18643c41e18 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -879,6 +879,24 @@ Module::LogMessage (Log *log, const char *format, ...)
}
}
+void
+Module::LogMessageVerboseBacktrace (Log *log, const char *format, ...)
+{
+ if (log)
+ {
+ StreamString log_message;
+ GetDescription(&log_message, lldb::eDescriptionLevelFull);
+ log_message.PutCString (": ");
+ va_list args;
+ va_start (args, format);
+ log_message.PrintfVarArg (format, args);
+ va_end (args);
+ if (log->GetVerbose())
+ Host::Backtrace (log_message, 1024);
+ log->PutCString(log_message.GetString().c_str());
+ }
+}
+
bool
Module::GetModified (bool use_cached_only)
{
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
index 2f598b827fc..af870d51836 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
@@ -172,9 +172,9 @@ DWARFCompileUnit::ExtractDIEsIfNeeded (bool cu_die_only)
LogSP log (LogChannelDWARF::GetLogIfAny(DWARF_LOG_DEBUG_INFO | DWARF_LOG_LOOKUPS));
if (log)
{
- m_dwarf2Data->GetObjectFile()->GetModule()->LogMessage (log.get(),
- "DWARFCompileUnit::ExtractDIEsIfNeeded () for compile unit at .debug_info[0x%8.8x]",
- GetOffset());
+ m_dwarf2Data->GetObjectFile()->GetModule()->LogMessageVerboseBacktrace (log.get(),
+ "DWARFCompileUnit::ExtractDIEsIfNeeded () for compile unit at .debug_info[0x%8.8x]",
+ GetOffset());
}
}
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 8372bec356b..7660569766b 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1995,19 +1995,12 @@ SymbolFileDWARF::ResolveClangOpaqueTypeDefinition (lldb::clang_type_t clang_type
LogSP log (LogChannelDWARF::GetLogIfAny(DWARF_LOG_DEBUG_INFO|DWARF_LOG_TYPE_COMPLETION));
if (log)
{
- GetObjectFile()->GetModule()->LogMessage (log.get(),
- "0x%8.8llx: %s '%s' resolving forward declaration...",
- MakeUserID(die->GetOffset()),
- DW_TAG_value_to_name(tag),
- type->GetName().AsCString());
+ GetObjectFile()->GetModule()->LogMessageVerboseBacktrace (log.get(),
+ "0x%8.8llx: %s '%s' resolving forward declaration...",
+ MakeUserID(die->GetOffset()),
+ DW_TAG_value_to_name(tag),
+ type->GetName().AsCString());
- if (log->GetVerbose())
- {
- StreamString strm;
- Host::Backtrace (strm, 1024);
- if (strm.GetData())
- log->PutCString(strm.GetData());
- }
}
assert (clang_type);
DWARFDebugInfoEntry::Attributes attributes;
OpenPOWER on IntegriCloud