[llvm] [llvm-profgen] Print DWP related warnings under show-detailed-warning (PR #68019)
Hongtao Yu via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 3 09:46:07 PDT 2023
https://github.com/htyu updated https://github.com/llvm/llvm-project/pull/68019
>From b2ae5f485d1bc6ea7749b6ef8f52d1f47100c488 Mon Sep 17 00:00:00 2001
From: Hongtao Yu <hoy at fb.com>
Date: Mon, 2 Oct 2023 11:57:47 -0700
Subject: [PATCH] [llvm-profgen] Print DWP related warnings under
show-detailed-warning
---
llvm/tools/llvm-profgen/ProfiledBinary.cpp | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/llvm/tools/llvm-profgen/ProfiledBinary.cpp b/llvm/tools/llvm-profgen/ProfiledBinary.cpp
index f26b2bd5df5eda5..159d7d755d8ca00 100644
--- a/llvm/tools/llvm-profgen/ProfiledBinary.cpp
+++ b/llvm/tools/llvm-profgen/ProfiledBinary.cpp
@@ -810,24 +810,31 @@ void ProfiledBinary::loadSymbolsFromDWARF(ObjectFile &Obj) {
loadSymbolsFromDWARFUnit(*CompilationUnit.get());
// Handles DWO sections that can either be in .o, .dwo or .dwp files.
+ uint32_t NumOfDWOMissing = 0;
for (const auto &CompilationUnit : DebugContext->compile_units()) {
DWARFUnit *const DwarfUnit = CompilationUnit.get();
if (DwarfUnit->getDWOId()) {
DWARFUnit *DWOCU = DwarfUnit->getNonSkeletonUnitDIE(false).getDwarfUnit();
if (!DWOCU->isDWOUnit()) {
- std::string DWOName = dwarf::toString(
- DwarfUnit->getUnitDIE().find(
- {dwarf::DW_AT_dwo_name, dwarf::DW_AT_GNU_dwo_name}),
- "");
- WithColor::warning()
- << "DWO debug information for " << DWOName
- << " was not loaded. Please check the .o, .dwo or .dwp path.\n";
+ NumOfDWOMissing++;
+ if (ShowDetailedWarning) {
+ std::string DWOName = dwarf::toString(
+ DwarfUnit->getUnitDIE().find(
+ {dwarf::DW_AT_dwo_name, dwarf::DW_AT_GNU_dwo_name}),
+ "");
+ WithColor::warning() << "DWO debug information for " << DWOName
+ << " was not loaded.\n";
+ }
continue;
}
loadSymbolsFromDWARFUnit(*DWOCU);
}
}
+ if (NumOfDWOMissing)
+ WithColor::warning()
+ << " DWO debug information was not loaded for " << NumOfDWOMissing
+ << " modules, Please check the .o, .dwo or .dwp path.\n";
if (BinaryFunctions.empty())
WithColor::warning() << "Loading of DWARF info completed, but no binary "
"functions have been retrieved.\n";
More information about the llvm-commits
mailing list