summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
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
commitbdce12a01bcb9e2f99c2092be4a1a1777a38385d (patch)
treee4a6b60f80e72a2514732121b9ac6ee72c631bb3 /llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
parent932d88ca051787a2db9e8bcd06a09100c03980cd (diff)
downloadbcm5719-llvm-bdce12a01bcb9e2f99c2092be4a1a1777a38385d.tar.gz
bcm5719-llvm-bdce12a01bcb9e2f99c2092be4a1a1777a38385d.zip
[Symbolizer]: Add -pretty-print option
Differential Revision: http://reviews.llvm.org/D13671 llvm-svn: 252798
Diffstat (limited to 'llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp')
-rw-r--r--llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
index d0ef51e6f17..e45660c84c7 100644
--- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+++ b/llvm/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);
OpenPOWER on IntegriCloud