Chromium Code Reviews| Index: build/android/stacktrace/java_deobfuscate.py |
| diff --git a/build/android/stacktrace/java_deobfuscate.py b/build/android/stacktrace/java_deobfuscate.py |
| index a468ec30556f733ec2be8625c8a2b0bf9a73e1a9..c1279a314ac977aa2afa2096e6c672fb6c9e6cc3 100755 |
| --- a/build/android/stacktrace/java_deobfuscate.py |
| +++ b/build/android/stacktrace/java_deobfuscate.py |
| @@ -10,28 +10,19 @@ mangled by ProGuard. Takes stack traces from stdin (eg. adb logcat | |
| java_deobfuscate.py proguard.mapping) and files. |
| """ |
| -# Can just run: |
| -# java -jar third_party/proguard/lib/retrace.jar -regex \ |
| -# "(?:.*?\bat\s+%c\.%m\s*\(%s(?::%l)?\)\s*)|(?:(?:.*?[:\"]\s+)?%c(?::.*)?)" \ |
| -# ~/mapping |
| -# in terminal to achieve same effect as this tool. |
| - |
| import argparse |
| import os |
| -import subprocess |
| -import sys |
| - |
| -_THIRD_PARTY_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), |
| - os.pardir, os.pardir, os.pardir, |
| - 'third_party')) |
| -sys.path.append(os.path.join(_THIRD_PARTY_DIR, 'catapult', 'devil')) |
| -from devil.utils import cmd_helper |
| +_SRC_DIR = os.path.normpath( |
| + os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir)) |
| -# This regex is taken from |
| +# This regex is based on the one from: |
| # http://proguard.sourceforge.net/manual/retrace/usage.html. |
| +# But with the "at" part changed to "(?::|\bat)", to account for lines like: |
|
mikecase (-- gone --)
2017/06/22 20:34:16
Do you have an example of the type of lines this n
agrieve
2017/06/23 01:48:22
Done.
|
| +# 06-22 13:58:02.895 4674 4674 E THREAD_STATE: bLA.a(PG:173) |
| _LINE_PARSE_REGEX = ( |
| - r'(?:.*?\bat\s+%c\.%m\s*\(%s(?::%l)?\)\s*)|(?:(?:.*?[:"]\s+)?%c(?::.*)?)') |
| + r'(?:.*?(?::|\bat)\s+%c\.%m\s*\(%s(?::%l)?\)\s*)|' |
| + r'(?:(?:.*?[:"]\s+)?%c(?::.*)?)') |
| def main(): |
| @@ -44,16 +35,14 @@ def main(): |
| help='Stacktrace file to be deobfuscated.') |
| args = parser.parse_args() |
| - retrace_path = os.path.join(_THIRD_PARTY_DIR, 'proguard', |
| - 'lib', 'retrace.jar') |
| + retrace_path = os.path.join( |
| + _SRC_DIR, 'third_party', 'proguard', 'lib', 'retrace.jar') |
| - base_args = ['java', '-jar', retrace_path, '-regex', _LINE_PARSE_REGEX, |
| - args.mapping_file] |
| + cmd = ['java', '-jar', retrace_path, '-regex', _LINE_PARSE_REGEX, |
| + args.mapping_file] |
| if args.stacktrace: |
| - subprocess.call(base_args + [args.stacktrace]) |
| - else: |
| - for line in cmd_helper.IterCmdOutputLines(base_args): |
| - print line |
| + cmd.append(args.stacktrace) |
| + os.execvp('java', cmd) |
| if __name__ == '__main__': |