diff options
author | Zachary Turner <zturner@google.com> | 2015-05-06 22:26:30 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2015-05-06 22:26:30 +0000 |
commit | c007aa41b6dac766af69998a4a161eabc9ca1ccf (patch) | |
tree | 1d4ea78e5f3dcf3c383d8a7cb5a9e13accba17fb /llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | |
parent | 566bc5aa8a107712e7a6d85da200df8d69ea61a0 (diff) | |
download | bcm5719-llvm-c007aa41b6dac766af69998a4a161eabc9ca1ccf.tar.gz bcm5719-llvm-c007aa41b6dac766af69998a4a161eabc9ca1ccf.zip |
A few fixes for llvm-symbolizer on Windows.
Specifically, this patch correctly respects the -demangle option,
and additionally adds a hidden --relative-address option allows
input addresses to be relative to the module load address instead
of absolute addresses into the image.
llvm-svn: 236653
Diffstat (limited to 'llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp')
-rw-r--r-- | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp index 7a77a4476e3..9c9f3adbf60 100644 --- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -49,8 +49,13 @@ static cl::opt<FunctionNameKind> ClPrintFunctions( clEnumValEnd)); static cl::opt<bool> -ClPrintInlining("inlining", cl::init(true), - cl::desc("Print all inlined frames for a given address")); + ClUseRelativeAddress("relative-address", cl::init(false), + cl::desc("Interpret addresses as relative addresses"), + cl::ReallyHidden); + +static cl::opt<bool> + ClPrintInlining("inlining", cl::init(true), + cl::desc("Print all inlined frames for a given address")); static cl::opt<bool> ClDemangle("demangle", cl::init(true), cl::desc("Demangle function names")); @@ -127,8 +132,9 @@ int main(int argc, char **argv) { llvm::sys::InitializeCOMRAII COM(llvm::sys::COMThreadingMode::MultiThreaded); cl::ParseCommandLineOptions(argc, argv, "llvm-symbolizer\n"); - LLVMSymbolizer::Options Opts(ClUseSymbolTable, ClPrintFunctions, - ClPrintInlining, ClDemangle, ClDefaultArch); + LLVMSymbolizer::Options Opts(ClPrintFunctions, ClUseSymbolTable, + ClPrintInlining, ClDemangle, + ClUseRelativeAddress, ClDefaultArch); for (const auto &hint : ClDsymHint) { if (sys::path::extension(hint) == ".dSYM") { Opts.DsymHints.push_back(hint); |