diff options
author | Hemant Kulkarni <khemant@codeaurora.org> | 2015-11-11 20:41:43 +0000 |
---|---|---|
committer | Hemant Kulkarni <khemant@codeaurora.org> | 2015-11-11 20:41:43 +0000 |
commit | a07496f56ab22b54a0575bb54461db785dfc3049 (patch) | |
tree | 365a1a0eda994b61cd6998e856f67be4c90d1c79 /tools | |
parent | f805775e099a8ed0fb6f5f5dfd6c4504f7187fcf (diff) |
[Symbolizer]: Add -pretty-print option
Differential Revision: http://reviews.llvm.org/D13671
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252798 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/llvm-symbolizer/llvm-symbolizer.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/llvm-symbolizer/llvm-symbolizer.cpp b/tools/llvm-symbolizer/llvm-symbolizer.cpp index d0ef51e6f17..e45660c84c7 100644 --- a/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -78,6 +78,10 @@ static cl::opt<bool> ClPrintAddress("print-address", cl::init(false), cl::desc("Show address before line information")); +static cl::opt<bool> + ClPrettyPrint("pretty-print", cl::init(false), + cl::desc("Make the output more human friendly")); + static bool error(std::error_code ec) { if (!ec) return false; @@ -143,6 +147,7 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "llvm-symbolizer\n"); LLVMSymbolizer::Options Opts(ClPrintFunctions, ClUseSymbolTable, ClDemangle, ClUseRelativeAddress, ClDefaultArch); + for (const auto &hint : ClDsymHint) { if (sys::path::extension(hint) == ".dSYM") { Opts.DsymHints.push_back(hint); @@ -156,13 +161,15 @@ int main(int argc, char **argv) { bool IsData = false; std::string ModuleName; uint64_t ModuleOffset; - DIPrinter Printer(outs(), ClPrintFunctions != FunctionNameKind::None); + DIPrinter Printer(outs(), ClPrintFunctions != FunctionNameKind::None, + ClPrettyPrint); while (parseCommand(IsData, ModuleName, ModuleOffset)) { if (ClPrintAddress) { outs() << "0x"; outs().write_hex(ModuleOffset); - outs() << "\n"; + StringRef Delimiter = (ClPrettyPrint == true) ? ": " : "\n"; + outs() << Delimiter; } if (IsData) { auto ResOrErr = Symbolizer.symbolizeData(ModuleName, ModuleOffset); |