summaryrefslogtreecommitdiff
path: root/lib/asan/scripts
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2013-02-18 08:02:16 +0000
committerKostya Serebryany <kcc@google.com>2013-02-18 08:02:16 +0000
commit8e32db4efc90a4d136786b4bdda62363df99e12c (patch)
tree21d79688e0e1585af132075dd31860026fd10fb8 /lib/asan/scripts
parent0fa691b7ec97d8c3948a637d6263822ed4e738f7 (diff)
downloadcompiler-rt-8e32db4efc90a4d136786b4bdda62363df99e12c.tar.gz
compiler-rt-8e32db4efc90a4d136786b4bdda62363df99e12c.tar.bz2
compiler-rt-8e32db4efc90a4d136786b4bdda62363df99e12c.tar.xz
[asan] added flag -d|--demangle to asan_symbolize.py, makes addr2line/llvm-symbolizer demangle the functions names
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@175429 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/scripts')
-rwxr-xr-xlib/asan/scripts/asan_symbolize.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/asan/scripts/asan_symbolize.py b/lib/asan/scripts/asan_symbolize.py
index 7b30bb55..bd3bf1e9 100755
--- a/lib/asan/scripts/asan_symbolize.py
+++ b/lib/asan/scripts/asan_symbolize.py
@@ -8,6 +8,7 @@
#
#===------------------------------------------------------------------------===#
import bisect
+import getopt
import os
import re
import subprocess
@@ -18,6 +19,7 @@ symbolizers = {}
filetypes = {}
vmaddrs = {}
DEBUG = False
+demangle = False;
# FIXME: merge the code that calls fix_filename().
@@ -60,7 +62,7 @@ class LLVMSymbolizer(Symbolizer):
return None
cmd = [self.symbolizer_path,
'--use-symbol-table=true',
- '--demangle=false',
+ '--demangle=%s' % demangle,
'--functions=true',
'--inlining=true']
if DEBUG:
@@ -111,7 +113,10 @@ class Addr2LineSymbolizer(Symbolizer):
self.pipe = self.open_addr2line()
def open_addr2line(self):
- cmd = ['addr2line', '-f', '-e', self.binary]
+ cmd = ['addr2line', '-f']
+ if demangle:
+ cmd += ['--demangle']
+ cmd += ['-e', self.binary]
if DEBUG:
print ' '.join(cmd)
return subprocess.Popen(cmd,
@@ -352,5 +357,9 @@ class SymbolizationLoop(object):
if __name__ == '__main__':
+ opts, args = getopt.getopt(sys.argv[1:], "d", ["demangle"])
+ for o, a in opts:
+ if o in ("-d", "--demangle"):
+ demangle = True;
loop = SymbolizationLoop()
loop.process_stdin()