summaryrefslogtreecommitdiffstats
path: root/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2012-08-15 19:34:23 +0000
committerdim <dim@FreeBSD.org>2012-08-15 19:34:23 +0000
commit721c201bd55ffb73cb2ba8d39e0570fa38c44e15 (patch)
treeeacfc83d988e4b9d11114387ae7dc41243f2a363 /tools/llvm-dwarfdump/llvm-dwarfdump.cpp
parent2b2816e083a455f7a656ae88b0fd059d1688bb36 (diff)
downloadFreeBSD-src-721c201bd55ffb73cb2ba8d39e0570fa38c44e15.zip
FreeBSD-src-721c201bd55ffb73cb2ba8d39e0570fa38c44e15.tar.gz
Vendor import of llvm trunk r161861:
http://llvm.org/svn/llvm-project/llvm/trunk@161861
Diffstat (limited to 'tools/llvm-dwarfdump/llvm-dwarfdump.cpp')
-rw-r--r--tools/llvm-dwarfdump/llvm-dwarfdump.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
index ca0493d..ec0b4ae 100644
--- a/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
+++ b/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
@@ -39,6 +39,11 @@ static cl::opt<unsigned long long>
Address("address", cl::init(-1ULL),
cl::desc("Print line information for a given address"));
+static cl::opt<bool>
+PrintFunctions("functions", cl::init(false),
+ cl::desc("Print function names as well as line information "
+ "for a given address"));
+
static void DumpInput(const StringRef &Filename) {
OwningPtr<MemoryBuffer> Buff;
@@ -92,7 +97,14 @@ static void DumpInput(const StringRef &Filename) {
dictx->dump(outs());
} else {
// Print line info for the specified address.
- DILineInfo dli = dictx->getLineInfoForAddress(Address);
+ int spec_flags = DILineInfoSpecifier::FileLineInfo |
+ DILineInfoSpecifier::AbsoluteFilePath;
+ if (PrintFunctions)
+ spec_flags |= DILineInfoSpecifier::FunctionName;
+ DILineInfo dli = dictx->getLineInfoForAddress(Address, spec_flags);
+ if (PrintFunctions)
+ outs() << (dli.getFunctionName() ? dli.getFunctionName() : "<unknown>")
+ << "\n";
outs() << (dli.getFileName() ? dli.getFileName() : "<unknown>") << ':'
<< dli.getLine() << ':' << dli.getColumn() << '\n';
}
OpenPOWER on IntegriCloud