https://github.com/ZequanWu updated https://github.com/llvm/llvm-project/pull/86568
>From 19dd9a13c21d70b42b9d68aed6fb0b5a5e494685 Mon Sep 17 00:00:00 2001 From: Zequan Wu <zequa...@google.com> Date: Mon, 25 Mar 2024 15:49:42 -0400 Subject: [PATCH 1/2] [lldb][Dwarf] Fix dwarf parse time for line table and .debug_abbrev. --- .../Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 08ce7b82b0c16a..8039a35ed8941c 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -145,8 +145,10 @@ static PluginProperties &GetGlobalPluginProperties() { static const llvm::DWARFDebugLine::LineTable * ParseLLVMLineTable(DWARFContext &context, llvm::DWARFDebugLine &line, - dw_offset_t line_offset, dw_offset_t unit_offset) { + dw_offset_t line_offset, dw_offset_t unit_offset, + StatsDuration &parse_time) { Log *log = GetLog(DWARFLog::DebugInfo); + ElapsedTime elapsed(parse_time); llvm::DWARFDataExtractor data = context.getOrLoadLineData().GetAsLLVMDWARF(); llvm::DWARFContext &ctx = context.GetAsLLVM(); @@ -693,6 +695,7 @@ llvm::DWARFDebugAbbrev *SymbolFileDWARF::DebugAbbrev() { if (debug_abbrev_data.GetByteSize() == 0) return nullptr; + ElapsedTime elapsed(m_parse_time); auto abbr = std::make_unique<llvm::DWARFDebugAbbrev>(debug_abbrev_data.GetAsLLVM()); llvm::Error error = abbr->parse(); @@ -1228,10 +1231,9 @@ bool SymbolFileDWARF::ParseLineTable(CompileUnit &comp_unit) { if (offset == DW_INVALID_OFFSET) return false; - ElapsedTime elapsed(m_parse_time); llvm::DWARFDebugLine line; - const llvm::DWARFDebugLine::LineTable *line_table = - ParseLLVMLineTable(m_context, line, offset, dwarf_cu->GetOffset()); + const llvm::DWARFDebugLine::LineTable *line_table = ParseLLVMLineTable( + m_context, line, offset, dwarf_cu->GetOffset(), m_parse_time); if (!line_table) return false; >From ef97e93b9b26c6a1923ff3b6c3dad76a67f2b64d Mon Sep 17 00:00:00 2001 From: Zequan Wu <zequa...@google.com> Date: Tue, 26 Mar 2024 10:46:18 -0400 Subject: [PATCH 2/2] revert change in ParseLineTable --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 8039a35ed8941c..0f459706c05643 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -145,10 +145,8 @@ static PluginProperties &GetGlobalPluginProperties() { static const llvm::DWARFDebugLine::LineTable * ParseLLVMLineTable(DWARFContext &context, llvm::DWARFDebugLine &line, - dw_offset_t line_offset, dw_offset_t unit_offset, - StatsDuration &parse_time) { + dw_offset_t line_offset, dw_offset_t unit_offset) { Log *log = GetLog(DWARFLog::DebugInfo); - ElapsedTime elapsed(parse_time); llvm::DWARFDataExtractor data = context.getOrLoadLineData().GetAsLLVMDWARF(); llvm::DWARFContext &ctx = context.GetAsLLVM(); @@ -1231,9 +1229,10 @@ bool SymbolFileDWARF::ParseLineTable(CompileUnit &comp_unit) { if (offset == DW_INVALID_OFFSET) return false; + ElapsedTime elapsed(m_parse_time); llvm::DWARFDebugLine line; - const llvm::DWARFDebugLine::LineTable *line_table = ParseLLVMLineTable( - m_context, line, offset, dwarf_cu->GetOffset(), m_parse_time); + const llvm::DWARFDebugLine::LineTable *line_table = + ParseLLVMLineTable(m_context, line, offset, dwarf_cu->GetOffset()); if (!line_table) return false; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits