diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2019-08-05 20:59:25 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2019-08-05 20:59:25 +0000 |
commit | a56d81f4fb034eaf8fd9f9e216cf65d40a275364 (patch) | |
tree | 0e0fdea619916a816a15be22864f049d90a4492f /llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | |
parent | 1d92925a5ad8869d208fcbfb3c093e9dee016ddc (diff) | |
download | bcm5719-llvm-a56d81f4fb034eaf8fd9f9e216cf65d40a275364.tar.gz bcm5719-llvm-a56d81f4fb034eaf8fd9f9e216cf65d40a275364.zip |
llvm-symbolizer: Untag addresses in object files by default.
Any addresses that we pass to llvm-symbolizer are going to be untagged,
while any HWASAN instrumented globals are going to be tagged in the
symbol table. Therefore we need to untag the addresses before using them.
Differential Revision: https://reviews.llvm.org/D65769
llvm-svn: 367926
Diffstat (limited to 'llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp')
-rw-r--r-- | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp index ea94cf9b69a..54ce87d4797 100644 --- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -55,6 +55,10 @@ static cl::opt<bool> cl::desc("Interpret addresses as relative addresses"), cl::ReallyHidden); +static cl::opt<bool> ClUntagAddresses( + "untag-addresses", cl::init(true), + cl::desc("Remove memory tags from addresses before symbolization")); + static cl::opt<bool> ClPrintInlining("inlining", cl::init(true), cl::desc("Print all inlined frames for a given address")); @@ -274,6 +278,7 @@ int main(int argc, char **argv) { ClDemangle.setInitialValue(false); ClPrintFunctions.setInitialValue(FunctionNameKind::None); ClPrintInlining.setInitialValue(false); + ClUntagAddresses.setInitialValue(false); ClOutputStyle.setInitialValue(DIPrinter::OutputStyle::GNU); } @@ -290,6 +295,7 @@ int main(int argc, char **argv) { Opts.UseSymbolTable = ClUseSymbolTable; Opts.Demangle = ClDemangle; Opts.RelativeAddresses = ClUseRelativeAddress; + Opts.UntagAddresses = ClUntagAddresses; Opts.DefaultArch = ClDefaultArch; Opts.FallbackDebugPath = ClFallbackDebugPath; Opts.DWPName = ClDwpName; |