summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2012-01-24 10:44:44 +0000
committerAlexander Potapenko <glider@google.com>2012-01-24 10:44:44 +0000
commit1f397fb87f00124beb429343353f856b2947bffb (patch)
tree7a8f732b5951065d994d353e7cb5383b832bd77f /compiler-rt/lib
parent7f1417f7cfd02e56f1d77830ddeb3e68485f0c59 (diff)
downloadbcm5719-llvm-1f397fb87f00124beb429343353f856b2947bffb.tar.gz
bcm5719-llvm-1f397fb87f00124beb429343353f856b2947bffb.zip
Tune asan_symbolize.py to symbolize 64-bit binaries correctly.
Add the DEBUG flag to test_output.sh llvm-svn: 148798
Diffstat (limited to 'compiler-rt/lib')
-rwxr-xr-xcompiler-rt/lib/asan/scripts/asan_symbolize.py11
-rwxr-xr-xcompiler-rt/lib/asan/tests/test_output.sh4
2 files changed, 11 insertions, 4 deletions
diff --git a/compiler-rt/lib/asan/scripts/asan_symbolize.py b/compiler-rt/lib/asan/scripts/asan_symbolize.py
index 80b59272516..154e1f2994b 100755
--- a/compiler-rt/lib/asan/scripts/asan_symbolize.py
+++ b/compiler-rt/lib/asan/scripts/asan_symbolize.py
@@ -72,15 +72,20 @@ def symbolize_atos(line):
addr = patch_address(frameno, addr)
load_addr = int(addr, 16) - int(offset, 16)
if not pipes.has_key(binary):
- #print "atos -o %s -l %s" % (binary, hex(load_addr))
- pipes[binary] = subprocess.Popen(["atos", "-o", binary],
+ # Guess which arch we're running. 10 = len("0x") + 8 hex digits.
+ if len(addr) > 10:
+ arch = "x86_64"
+ else:
+ arch = "i386"
+ #print "atos -o %s -arch %s " % (binary, arch)
+ pipes[binary] = subprocess.Popen(["atos", "-o", binary, "-arch", arch],
stdin=subprocess.PIPE, stdout=subprocess.PIPE,)
p = pipes[binary]
# TODO(glider): how to tell if the address is absolute?
if ".app/" in binary and not ".framework" in binary:
print >>p.stdin, "%s" % addr
else:
- print >>p.stdin, "%s" % offset
+ print >>p.stdin, "%s" % addr
# TODO(glider): it's more efficient to make a batch atos run for each binary.
p.stdin.close()
atos_line = p.stdout.readline().rstrip()
diff --git a/compiler-rt/lib/asan/tests/test_output.sh b/compiler-rt/lib/asan/tests/test_output.sh
index 54d8e696466..1dfe9598ddf 100755
--- a/compiler-rt/lib/asan/tests/test_output.sh
+++ b/compiler-rt/lib/asan/tests/test_output.sh
@@ -27,7 +27,9 @@ for t in *.tmpl; do
exe=$c.$b.O$O
so=$c.$b.O$O-so.so
echo testing $exe
- $CXX $CXXFLAGS -g -m$b -faddress-sanitizer -O$O $c.cc -o $exe
+ build_command="$CXX $CXXFLAGS -g -m$b -faddress-sanitizer -O$O $c.cc -o $exe"
+ [ "$DEBUG" == "1" ] && echo $build_command
+ $build_command
[ -e "$c_so.cc" ] && $CXX $CXXFLAGS -g -m$b -faddress-sanitizer -O$O $c_so.cc -fPIC -shared -o $so
# If there's an OS-specific template, use it.
# Please minimize the use of OS-specific templates.
OpenPOWER on IntegriCloud