diff options
author | Hemant Kulkarni <khemant@codeaurora.org> | 2015-11-11 17:47:54 +0000 |
---|---|---|
committer | Hemant Kulkarni <khemant@codeaurora.org> | 2015-11-11 17:47:54 +0000 |
commit | 5776ed04cef98e3b0c551dfb05e0e717b6894dc4 (patch) | |
tree | 3351d7b9c25b8f83d3210ac8d482451750f7d33d /tools/llvm-symbolizer | |
parent | 03849aaa4e9c3859d39aa2e2573a0f69d6b3eb7f (diff) |
[Symbolizer]: Add -pretty-print option
Differential Revision: http://reviews.llvm.org/D13671
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252760 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-symbolizer')
-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); |