| Index: third_party/android_platform/development/scripts/stack
|
| diff --git a/third_party/android_platform/development/scripts/stack b/third_party/android_platform/development/scripts/stack
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..6bb8d0acb2f71f7ed6f5546243c20ca514a0eb8a
|
| --- /dev/null
|
| +++ b/third_party/android_platform/development/scripts/stack
|
| @@ -0,0 +1,78 @@
|
| +#!/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|x86"
|
| + 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()
|
| +
|
| + print "Reading symbols from", symbol.SYMBOLS_DIR
|
| + stack_core.ConvertTrace(lines)
|
| +
|
| +if __name__ == "__main__":
|
| + main()
|
| +
|
| +# vi: ts=2 sw=2
|
|
|