[PATCH] D147115: [symbolizer] Build 'Request' object in single point. NFC
Serge Pavlov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 28 23:20:35 PDT 2023
sepavloff created this revision.
sepavloff added reviewers: jhenderson, mysterymath, MaskRay, dblaikie, ikudrin, dvyukov.
Herald added a project: All.
sepavloff requested review of this revision.
Herald added a project: LLVM.
All control paths in executeCommand create Request object for use in
calls to 'print' function and do it identically. With this change the
Request object is created in a single point, which simplifies changing
implementation of Request class.
This is a prerequisite patch for implementation of symbol+offset lookup.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D147115
Files:
llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Index: llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
===================================================================
--- llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+++ llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
@@ -218,17 +218,18 @@
uint64_t AdjustedOffset = Offset - AdjustVMA;
object::SectionedAddress Address = {AdjustedOffset,
object::SectionedAddress::UndefSection};
+ Request SymRequest = {ModuleName, Offset};
if (Cmd == Command::Data) {
Expected<DIGlobal> ResOrErr = Symbolizer.symbolizeData(ModuleSpec, Address);
- print({ModuleName, Offset}, ResOrErr, Printer);
+ print(SymRequest, ResOrErr, Printer);
} else if (Cmd == Command::Frame) {
Expected<std::vector<DILocal>> ResOrErr =
Symbolizer.symbolizeFrame(ModuleSpec, Address);
- print({ModuleName, Offset}, ResOrErr, Printer);
+ print(SymRequest, ResOrErr, Printer);
} else if (ShouldInline) {
Expected<DIInliningInfo> ResOrErr =
Symbolizer.symbolizeInlinedCode(ModuleSpec, Address);
- print({ModuleName, Offset}, ResOrErr, Printer);
+ print(SymRequest, ResOrErr, Printer);
} else if (Style == OutputStyle::GNU) {
// With PrintFunctions == FunctionNameKind::LinkageName (default)
// and UseSymbolTable == true (also default), Symbolizer.symbolizeCode()
@@ -243,11 +244,11 @@
? Expected<DILineInfo>(ResOrErr.takeError())
: ((ResOrErr->getNumberOfFrames() == 0) ? DILineInfo()
: ResOrErr->getFrame(0));
- print({ModuleName, Offset}, Res0OrErr, Printer);
+ print(SymRequest, Res0OrErr, Printer);
} else {
Expected<DILineInfo> ResOrErr =
Symbolizer.symbolizeCode(ModuleSpec, Address);
- print({ModuleName, Offset}, ResOrErr, Printer);
+ print(SymRequest, ResOrErr, Printer);
}
Symbolizer.pruneCache();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147115.509221.patch
Type: text/x-patch
Size: 1908 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230329/5be5efd1/attachment.bin>
More information about the llvm-commits
mailing list