diff options
author | Kostya Serebryany <kcc@google.com> | 2013-02-18 08:02:16 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2013-02-18 08:02:16 +0000 |
commit | 8e32db4efc90a4d136786b4bdda62363df99e12c (patch) | |
tree | 21d79688e0e1585af132075dd31860026fd10fb8 /lib/asan/scripts | |
parent | 0fa691b7ec97d8c3948a637d6263822ed4e738f7 (diff) | |
download | compiler-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-x | lib/asan/scripts/asan_symbolize.py | 13 |
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() |