summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorHemant Kulkarni <khemant@codeaurora.org>2015-11-11 20:41:43 +0000
committerHemant Kulkarni <khemant@codeaurora.org>2015-11-11 20:41:43 +0000
commita07496f56ab22b54a0575bb54461db785dfc3049 (patch)
tree365a1a0eda994b61cd6998e856f67be4c90d1c79 /tools
parentf805775e099a8ed0fb6f5f5dfd6c4504f7187fcf (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.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);