You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
77 lines
2.0 KiB
#!/usr/bin/env python |
|
# |
|
# Copyright (C) 2013 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. |
|
|
|
"""stack symbolizes native crash dumps.""" |
|
|
|
import getopt |
|
import sys |
|
|
|
import stack_core |
|
import symbol |
|
|
|
|
|
def PrintUsage(): |
|
"""Print usage and exit with error.""" |
|
# pylint: disable-msg=C6310 |
|
print |
|
print " usage: " + sys.argv[0] + " [options] [FILE]" |
|
print |
|
print " --arch=arm|arm64|mips|mips64|x86|x86_64" |
|
print " the target architecture" |
|
print |
|
print " FILE should contain a stack trace in it somewhere" |
|
print " the tool will find that and re-print it with" |
|
print " source files and line numbers. If you don't" |
|
print " pass FILE, or if file is -, it reads from" |
|
print " stdin." |
|
print |
|
# pylint: enable-msg=C6310 |
|
sys.exit(1) |
|
|
|
|
|
def main(): |
|
try: |
|
options, arguments = getopt.getopt(sys.argv[1:], "", |
|
["arch=", |
|
"help"]) |
|
except getopt.GetoptError, unused_error: |
|
PrintUsage() |
|
|
|
for option, value in options: |
|
if option == "--help": |
|
PrintUsage() |
|
elif option == "--arch": |
|
symbol.ARCH = value |
|
|
|
if len(arguments) > 1: |
|
PrintUsage() |
|
|
|
if not arguments or arguments[0] == "-": |
|
print "Reading native crash info from stdin" |
|
f = sys.stdin |
|
else: |
|
print "Searching for native crashes in %s" % arguments[0] |
|
f = open(arguments[0], "r") |
|
|
|
lines = f.readlines() |
|
f.close() |
|
|
|
stack_core.ConvertTrace(lines) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|
|
# vi: ts=2 sw=2
|
|
|