================ @@ -33,6 +33,37 @@ static void EmplaceSafeString(llvm::json::Object &obj, llvm::StringRef key, obj.try_emplace(key, llvm::json::fixUTF8(str)); } +static void UpdateDwoFileCounts(SymbolFile *sym_file, + uint32_t &total_dwo_file_count, + uint32_t &total_loaded_dwo_file_count) { + // Count DWO files from this symbol file using GetSeparateDebugInfo + // For DWP files, this increments counts for both total and successfully + // loaded DWO CUs. For non split-dwarf files, these counts should not change + StructuredData::Dictionary separate_debug_info; + if (sym_file->GetSeparateDebugInfo(separate_debug_info, ---------------- jeffreytan81 wrote:
I would not recommend calling `GetSeparateDebugInfo` API for this task. `GetSeparateDebugInfo` API constructs `StructuredData::Dictionary` JSON style objects internally which is not cheap (I have seen profile traces that indicate constructing `StructuredData::Dictionary` as hot paths). This can get worse considering we are using `statistics dump` in lldb session logging by default. (means we are paying the cost every time). If we want to reuse it, I would suggest refactoring and reuse the necessary underlying implementation without extra expensive burdens. https://github.com/llvm/llvm-project/pull/144424 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits