forked from OSchip/llvm-project
Tune asan_symbolize.py to symbolize 64-bit binaries correctly.
Add the DEBUG flag to test_output.sh llvm-svn: 148798
This commit is contained in:
parent
7f1417f7cf
commit
1f397fb87f
|
@ -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()
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue