| #!/usr/bin/env python | 
 |  | 
 | # Copyright (C) 2009 The Android Open Source Project | 
 | # | 
 | # Licensed under the Apache License, Version 2.0 (the 'License'); | 
 | # you may not use this file except in compliance with the License. | 
 | # You may obtain a copy of the License at | 
 | # | 
 | #      http://www.apache.org/licenses/LICENSE-2.0 | 
 | # | 
 | # Unless required by applicable law or agreed to in writing, software | 
 | # distributed under the License is distributed on an 'AS IS' BASIS, | 
 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | # See the License for the specific language governing permissions and | 
 | # limitations under the License. | 
 |  | 
 | import os | 
 | import os.path | 
 | import re | 
 | import string | 
 | import sys | 
 |  | 
 | sys.path.insert(0, os.path.dirname(__file__) + "/../../development/scripts") | 
 | import stack_core | 
 | import symbol | 
 |  | 
 | if __name__ == '__main__': | 
 |   # pass the options to adb | 
 |   adb_cmd  = "adb " + ' '.join(sys.argv[1:]) | 
 |  | 
 |   # create tracer for line parsing | 
 |   tracer = stack_core.TraceConverter() | 
 |  | 
 |   # invoke the adb command and filter its output | 
 |   stream = os.popen(adb_cmd) | 
 |   while (True): | 
 |     line = stream.readline() | 
 |     if (line == ''): | 
 |       break | 
 |     if(tracer.ProcessLine(line) == False): | 
 |       print(line.strip()) | 
 |       sys.stdout.flush() | 
 |  | 
 |   # adb itself aborts | 
 |   stream.close() |