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 | 15e9c852c085ada70c77913512ebc0e4445532ec (patch) | |
tree | 7ac97ba0d7f67abe5cab898e4259f19b06847f23 /compiler-rt/lib/asan/scripts | |
parent | 0a6d724913c1133adf82e3fa6ee93530652a5dce (diff) | |
download | bcm5719-llvm-15e9c852c085ada70c77913512ebc0e4445532ec.tar.gz bcm5719-llvm-15e9c852c085ada70c77913512ebc0e4445532ec.zip |
[asan] added flag -d|--demangle to asan_symbolize.py, makes addr2line/llvm-symbolizer demangle the functions names
llvm-svn: 175429
Diffstat (limited to 'compiler-rt/lib/asan/scripts')
-rwxr-xr-x | compiler-rt/lib/asan/scripts/asan_symbolize.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/compiler-rt/lib/asan/scripts/asan_symbolize.py b/compiler-rt/lib/asan/scripts/asan_symbolize.py index 7b30bb55914..bd3bf1e9b53 100755 --- a/compiler-rt/lib/asan/scripts/asan_symbolize.py +++ b/compiler-rt/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() |