diff options
| -rwxr-xr-x | compiler-rt/lib/asan/scripts/asan_symbolize.py | 11 | ||||
| -rwxr-xr-x | compiler-rt/lib/asan/tests/test_output.sh | 4 |
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 80b5927..154e1f2 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 54d8e69..1dfe959 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. |
