1*288bf522SAndroid Build Coastguard Worker# 2*288bf522SAndroid Build Coastguard Worker# Uncompress a file generated via atrace -z 3*288bf522SAndroid Build Coastguard Worker# 4*288bf522SAndroid Build Coastguard Worker# Usage: python atrace-uncompress.py infile > outfile 5*288bf522SAndroid Build Coastguard Worker# 6*288bf522SAndroid Build Coastguard Workerimport sys, zlib 7*288bf522SAndroid Build Coastguard Worker 8*288bf522SAndroid Build Coastguard Workerdef main(): 9*288bf522SAndroid Build Coastguard Worker 10*288bf522SAndroid Build Coastguard Worker if len(sys.argv) != 2: 11*288bf522SAndroid Build Coastguard Worker print >> sys.stderr, ('Usage: %s inputfile' % sys.argv[0]) 12*288bf522SAndroid Build Coastguard Worker sys.exit(1) 13*288bf522SAndroid Build Coastguard Worker 14*288bf522SAndroid Build Coastguard Worker infile = open(sys.argv[1], "rb") 15*288bf522SAndroid Build Coastguard Worker out = infile.read() 16*288bf522SAndroid Build Coastguard Worker parts = out.split('\nTRACE:', 1) 17*288bf522SAndroid Build Coastguard Worker 18*288bf522SAndroid Build Coastguard Worker data = ''.join(parts[1]) 19*288bf522SAndroid Build Coastguard Worker 20*288bf522SAndroid Build Coastguard Worker # Remove CR characters 21*288bf522SAndroid Build Coastguard Worker if data.startswith('\r\n'): 22*288bf522SAndroid Build Coastguard Worker data = data.replace('\r\n', '\n') 23*288bf522SAndroid Build Coastguard Worker 24*288bf522SAndroid Build Coastguard Worker # Skip the initial newline. 25*288bf522SAndroid Build Coastguard Worker data = data[1:] 26*288bf522SAndroid Build Coastguard Worker 27*288bf522SAndroid Build Coastguard Worker if not data: 28*288bf522SAndroid Build Coastguard Worker print >> sys.stderr, ('No trace data found') 29*288bf522SAndroid Build Coastguard Worker sys.exit(1) 30*288bf522SAndroid Build Coastguard Worker 31*288bf522SAndroid Build Coastguard Worker out = zlib.decompress(data) 32*288bf522SAndroid Build Coastguard Worker print(out) 33*288bf522SAndroid Build Coastguard Worker 34*288bf522SAndroid Build Coastguard Workerif __name__ == '__main__': 35*288bf522SAndroid Build Coastguard Worker main() 36