summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2019-08-05 20:59:25 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2019-08-05 20:59:25 +0000
commita56d81f4fb034eaf8fd9f9e216cf65d40a275364 (patch)
tree0e0fdea619916a816a15be22864f049d90a4492f /llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
parent1d92925a5ad8869d208fcbfb3c093e9dee016ddc (diff)
downloadbcm5719-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.cpp6
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;
OpenPOWER on IntegriCloud