summaryrefslogtreecommitdiffstats
path: root/cmds/dumpstate
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-10-21 07:00:00 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2008-10-21 07:00:00 -0700
commit54b6cfa9a9e5b861a9930af873580d6dc20f773c (patch)
tree35051494d2af230dce54d6b31c6af8fc24091316 /cmds/dumpstate
downloadframeworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.zip
frameworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.tar.gz
frameworks_base-54b6cfa9a9e5b861a9930af873580d6dc20f773c.tar.bz2
Initial Contribution
Diffstat (limited to 'cmds/dumpstate')
-rw-r--r--cmds/dumpstate/Android.mk16
-rwxr-xr-xcmds/dumpstate/dumpstate114
2 files changed, 130 insertions, 0 deletions
diff --git a/cmds/dumpstate/Android.mk b/cmds/dumpstate/Android.mk
new file mode 100644
index 0000000..e101aeb
--- /dev/null
+++ b/cmds/dumpstate/Android.mk
@@ -0,0 +1,16 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+ALL_PREBUILT += $(TARGET_OUT)/bin/dumpstate
+$(TARGET_OUT)/bin/dumpstate : $(LOCAL_PATH)/dumpstate | $(ACP)
+ $(transform-prebuilt-to-target)
+
+SYMLINKS := $(TARGET_OUT_EXECUTABLES)/dumpcrash
+$(SYMLINKS): DUMPSTATE_BINARY := dumpstate
+$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
+ @echo "Symlink: $@ -> $(DUMPSTATE_BINARY)"
+ @mkdir -p $(dir $@)
+ @rm -rf $@
+ $(hide) ln -sf $(DUMPSTATE_BINARY) $@
+
+ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
diff --git a/cmds/dumpstate/dumpstate b/cmds/dumpstate/dumpstate
new file mode 100755
index 0000000..8dd7d14
--- /dev/null
+++ b/cmds/dumpstate/dumpstate
@@ -0,0 +1,114 @@
+#!/system/bin/sh
+
+# Dumps to /tmp/state by default.
+# Specify "-" to dump to stdout, or any file name to dump to that file.
+
+crashmode=0
+case $0 in
+ dumpcrash|*/dumpcrash) crashmode=1 ;;
+esac
+
+case $1 in
+ "") echo "DUMPING STATE TO /tmp/state"; exec 1>/tmp/state ;;
+ -) ;;
+ *) echo "DUMPING STATE TO $1"; exec 1>$1 ;;
+esac
+
+case $crashmode in 0)
+ echo "========================================================"
+ echo "== dumpstate"
+ echo "========================================================"
+ echo "------ SYSTEM LOG ------"
+ logcat -v time -d '*:v'
+ echo "------ VM TRACES ------"
+ cat /data/anr/traces.txt
+ echo "------ EVENT LOG TAGS ------"
+ cat /etc/event-log-tags
+ echo "------ EVENT LOG ------"
+ logcat -b events -v time -d '*:v'
+ echo "------ RADIO LOG ------"
+ logcat -b radio -v time -d '*:v'
+ echo "------ NETWORK STATE ------"
+ echo "Interfaces:"
+ netcfg
+ echo ""
+ echo "Routes:"
+ cat /proc/net/route
+ echo "------ SYSTEM PROPERTIES ------"
+ getprop
+ echo "------ KERNEL LOG ------"
+ dmesg
+ echo "------ KERNEL WAKELOCKS ------"
+ cat /proc/wakelocks
+ echo ""
+ echo "------ PROCESSES ------"
+ ps
+ echo "------ PROCESSES AND THREADS ------"
+ ps -t -p
+ echo "------ MEMORY INFO ------"
+ cat /proc/meminfo
+ echo "------ PSS INFO ------"
+ top -n 1 -d 0 -m 15 -s pss
+ echo "------ PROCRANK ------"
+ procrank
+ echo "------ LIBRANK ------"
+ librank
+ echo "------ VIRTUAL MEMORY STATS ------"
+ cat /proc/vmstat
+ echo "------ SLAB INFO ------"
+ cat /proc/slabinfo
+ echo "------ ZONEINFO ------"
+ cat /proc/zoneinfo
+ echo "------ BINDER FAILED TRANSACTION LOG ------"
+ cat /proc/binder/failed_transaction_log
+ echo ""
+ echo "------ BINDER TRANSACTION LOG ------"
+ cat /proc/binder/transaction_log
+ echo ""
+ echo "------ BINDER TRANSACTIONS ------"
+ cat /proc/binder/transactions
+ echo ""
+ echo "------ BINDER STATS ------"
+ cat /proc/binder/stats
+ echo ""
+ for i in `ls /proc/binder/proc`; do
+ echo "------ BINDER PROCESS STATE: $i ------"
+ cat /proc/binder/proc/$i
+ echo ""
+ done
+ echo "------ FILESYSTEMS ------"
+ df
+ echo "------ PACKAGE SETTINGS ------"
+ cat /data/system/packages.xml
+ echo "------ PACKAGE UID ERRORS ------"
+ cat /data/system/uiderrors.txt
+ echo "------ LAST KERNEL LOG ------"
+ cat /proc/last_kmsg
+;; esac
+
+echo "========================================================"
+echo "== build.prop"
+echo "========================================================"
+
+# the crash server parses key-value pairs between the VERSION INFO and
+# END lines so we can aggregate crash reports based on this data.
+echo "------ VERSION INFO ------"
+echo "currenttime=`date`"
+echo "kernel.version=`cat /proc/version`"
+echo "kernel.cmdline=`cat /proc/cmdline`"
+cat /system/build.prop
+echo "gsm.version.ril-impl=`getprop gsm.version.ril-impl`"
+echo "gsm.version.baseband=`getprop gsm.version.baseband`"
+echo "gsm.imei=`getprop gsm.imei`"
+echo "gsm.sim.operator.numeric=`getprop gsm.sim.operator.numeric`"
+echo "gsm.operator.alpha=`getprop gsm.operator.alpha`"
+echo "------ END ------"
+
+case $crashmode in 0)
+ echo "========================================================"
+ echo "== dumpsys"
+ echo "========================================================"
+ dumpsys
+;; esac
+
+exit 0