summaryrefslogtreecommitdiff
path: root/tools/llvm-symbolizer
diff options
context:
space:
mode:
authorHemant Kulkarni <khemant@codeaurora.org>2015-11-11 17:47:54 +0000
committerHemant Kulkarni <khemant@codeaurora.org>2015-11-11 17:47:54 +0000
commit5776ed04cef98e3b0c551dfb05e0e717b6894dc4 (patch)
tree3351d7b9c25b8f83d3210ac8d482451750f7d33d /tools/llvm-symbolizer
parent03849aaa4e9c3859d39aa2e2573a0f69d6b3eb7f (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.cpp11
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);