diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-07-31 21:22:58 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-07-31 21:22:58 +0000 |
commit | 5ffd83dbcc34f10e07f6d3e968ae6365869615f4 (patch) | |
tree | 0e9f5cf729dde39f949698fddef45a34e2bc7f44 /contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp | |
parent | 1799696096df87b52968b8996d00c91e0a5de8d9 (diff) | |
parent | cfca06d7963fa0909f90483b42a6d7d194d01e08 (diff) |
Notes
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp b/contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp index af9255af21c3..8304d2d27afa 100644 --- a/contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp +++ b/contrib/llvm-project/llvm/tools/llvm-xray/xray-extract.cpp @@ -45,6 +45,11 @@ static cl::opt<bool> ExtractSymbolize("symbolize", cl::value_desc("symbolize"), cl::sub(Extract)); static cl::alias ExtractSymbolize2("s", cl::aliasopt(ExtractSymbolize), cl::desc("alias for -symbolize")); +static cl::opt<bool> ExtractNoDemangle("no-demangle", + cl::value_desc("no-demangle"), + cl::init(false), + cl::desc("don't demangle symbols"), + cl::sub(Extract)); namespace { @@ -58,9 +63,9 @@ void exportAsYAML(const InstrumentationMap &Map, raw_ostream &OS, auto FuncId = Map.getFunctionId(Sled.Function); if (!FuncId) return; - YAMLSleds.push_back({*FuncId, Sled.Address, Sled.Function, Sled.Kind, - Sled.AlwaysInstrument, - ExtractSymbolize ? FH.SymbolOrNumber(*FuncId) : ""}); + YAMLSleds.push_back( + {*FuncId, Sled.Address, Sled.Function, Sled.Kind, Sled.AlwaysInstrument, + ExtractSymbolize ? FH.SymbolOrNumber(*FuncId) : "", Sled.Version}); } Output Out(OS, nullptr, 0); Out << YAMLSleds; @@ -84,7 +89,10 @@ static CommandRegistration Unused(&Extract, []() -> Error { Twine("Cannot open file '") + ExtractOutput + "' for writing.", EC); const auto &FunctionAddresses = InstrumentationMapOrError->getFunctionAddresses(); - symbolize::LLVMSymbolizer Symbolizer; + symbolize::LLVMSymbolizer::Options opts; + if (ExtractNoDemangle) + opts.Demangle = false; + symbolize::LLVMSymbolizer Symbolizer(opts); llvm::xray::FuncIdConversionHelper FuncIdHelper(ExtractInput, Symbolizer, FunctionAddresses); exportAsYAML(*InstrumentationMapOrError, OS, FuncIdHelper); |