From 54b6cfa9a9e5b861a9930af873580d6dc20f773c Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 21 Oct 2008 07:00:00 -0700 Subject: Initial Contribution --- cmds/dumpstate/Android.mk | 16 +++++++ cmds/dumpstate/dumpstate | 114 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 cmds/dumpstate/Android.mk create mode 100755 cmds/dumpstate/dumpstate (limited to 'cmds/dumpstate') 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 -- cgit v1.1