diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2019-06-11 02:32:27 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2019-06-11 02:32:27 +0000 |
commit | e5bdedac9dc5ecb240a56dcb19e5fd923af6c353 (patch) | |
tree | 226ae5799cf45deecdfcf6178bfeef381f480389 /llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | |
parent | a2048f868dd2c7b642131005a4c031722de073d6 (diff) | |
download | bcm5719-llvm-e5bdedac9dc5ecb240a56dcb19e5fd923af6c353.tar.gz bcm5719-llvm-e5bdedac9dc5ecb240a56dcb19e5fd923af6c353.zip |
Symbolize: Make DWPName a symbolizer option instead of an argument to symbolize{,Inlined}Code.
This makes the interface simpler and more consistent with the interface for
.dSYM files and fixes a bug where llvm-symbolizer would not read the dwp if
it was asked to symbolize data before symbolizing code.
Differential Revision: https://reviews.llvm.org/D63114
llvm-svn: 363025
Diffstat (limited to 'llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp')
-rw-r--r-- | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp index 93270e61b27..00b8931c740 100644 --- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -224,8 +224,7 @@ static void symbolizeInput(StringRef InputString, LLVMSymbolizer &Symbolizer, Printer << (error(ResOrErr) ? DIGlobal() : ResOrErr.get()); } else if (ClPrintInlining) { auto ResOrErr = Symbolizer.symbolizeInlinedCode( - ModuleName, {Offset, object::SectionedAddress::UndefSection}, - ClDwpName); + ModuleName, {Offset, object::SectionedAddress::UndefSection}); Printer << (error(ResOrErr) ? DIInliningInfo() : ResOrErr.get()); } else if (ClOutputStyle == DIPrinter::OutputStyle::GNU) { // With ClPrintFunctions == FunctionNameKind::LinkageName (default) @@ -235,13 +234,11 @@ static void symbolizeInput(StringRef InputString, LLVMSymbolizer &Symbolizer, // behavior of addr2line. Symbolizer.symbolizeInlinedCode() overrides only // the topmost function, which suits our needs better. auto ResOrErr = Symbolizer.symbolizeInlinedCode( - ModuleName, {Offset, object::SectionedAddress::UndefSection}, - ClDwpName); + ModuleName, {Offset, object::SectionedAddress::UndefSection}); Printer << (error(ResOrErr) ? DILineInfo() : ResOrErr.get().getFrame(0)); } else { auto ResOrErr = Symbolizer.symbolizeCode( - ModuleName, {Offset, object::SectionedAddress::UndefSection}, - ClDwpName); + ModuleName, {Offset, object::SectionedAddress::UndefSection}); Printer << (error(ResOrErr) ? DILineInfo() : ResOrErr.get()); } if (ClOutputStyle == DIPrinter::OutputStyle::LLVM) @@ -275,6 +272,7 @@ int main(int argc, char **argv) { Opts.RelativeAddresses = ClUseRelativeAddress; Opts.DefaultArch = ClDefaultArch; Opts.FallbackDebugPath = ClFallbackDebugPath; + Opts.DWPName = ClDwpName; for (const auto &hint : ClDsymHint) { if (sys::path::extension(hint) == ".dSYM") { |