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
|
|