Loading cmds/statsd/src/atoms.proto +8 −0 Original line number Diff line number Diff line Loading @@ -1594,6 +1594,8 @@ message AppCrashOccurred { FOREGROUND = 2; } optional ForegroundState foreground_state = 7; optional android.server.ErrorSource error_source = 8; } /** Loading @@ -1612,6 +1614,8 @@ message WTFOccurred { // The pid if available. -1 means not available. optional sint32 pid = 4; optional android.server.ErrorSource error_source = 5; } /** Loading Loading @@ -1649,6 +1653,10 @@ message ANROccurred { FOREGROUND = 2; } optional ForegroundState foreground_state = 6; optional android.server.ErrorSource error_source = 7; optional string package_name = 8; } /** Loading core/proto/android/server/enums.proto +10 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,13 @@ enum DeviceIdleModeEnum { // Device idle mode - active in full mode. DEVICE_IDLE_MODE_DEEP = 2; } enum ErrorSource { ERROR_SOURCE_UNKNOWN = 0; // Data app DATA_APP = 1; // System app SYSTEM_APP = 2; // System server. SYSTEM_SERVER = 3; } services/core/java/com/android/server/am/ActivityManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -8568,7 +8568,8 @@ public class ActivityManagerService extends IActivityManager.Stub r != null ? (r.isInterestingToUserLocked() ? StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND) : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN, (r != null) ? r.getProcessClassEnum() : 0 ); final int relaunchReason = r == null ? RELAUNCH_REASON_NONE Loading Loading @@ -8751,7 +8752,7 @@ public class ActivityManagerService extends IActivityManager.Stub processName, r == null ? -1 : r.info.flags, tag, crashInfo.exceptionMessage); StatsLog.write(StatsLog.WTF_OCCURRED, callingUid, tag, processName, callingPid); callingPid, (r != null) ? r.getProcessClassEnum() : 0); addErrorToDropBox("wtf", r, processName, null, null, null, tag, null, null, crashInfo); Loading services/core/java/com/android/server/am/ProcessRecord.java +15 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.os.SystemClock; import android.os.Trace; import android.os.UserHandle; import android.provider.Settings; import android.server.ServerProtoEnums; import android.util.ArrayMap; import android.util.ArraySet; import android.util.DebugUtils; Loading Loading @@ -1224,6 +1225,17 @@ final class ProcessRecord implements WindowProcessListener { return mWindowProcessController.getInputDispatchingTimeout(); } public int getProcessClassEnum() { if (pid == MY_PID) { return ServerProtoEnums.SYSTEM_SERVER; } if (info == null) { return ServerProtoEnums.ERROR_SOURCE_UNKNOWN; } return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ? ServerProtoEnums.SYSTEM_APP : ServerProtoEnums.DATA_APP; } void appNotResponding(String activityShortComponentName, ApplicationInfo aInfo, String parentShortComponentName, WindowProcessController parentProcess, boolean aboveSystem, String annotation) { Loading Loading @@ -1380,7 +1392,9 @@ final class ProcessRecord implements WindowProcessListener { : StatsLog.ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE, isInterestingToUserLocked() ? StatsLog.ANROCCURRED__FOREGROUND_STATE__FOREGROUND : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND); : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND, getProcessClassEnum(), (this.info != null) ? this.info.packageName : ""); final ProcessRecord parentPr = parentProcess != null ? (ProcessRecord) parentProcess.mOwner : null; mService.addErrorToDropBox("anr", this, processName, activityShortComponentName, Loading Loading
cmds/statsd/src/atoms.proto +8 −0 Original line number Diff line number Diff line Loading @@ -1594,6 +1594,8 @@ message AppCrashOccurred { FOREGROUND = 2; } optional ForegroundState foreground_state = 7; optional android.server.ErrorSource error_source = 8; } /** Loading @@ -1612,6 +1614,8 @@ message WTFOccurred { // The pid if available. -1 means not available. optional sint32 pid = 4; optional android.server.ErrorSource error_source = 5; } /** Loading Loading @@ -1649,6 +1653,10 @@ message ANROccurred { FOREGROUND = 2; } optional ForegroundState foreground_state = 6; optional android.server.ErrorSource error_source = 7; optional string package_name = 8; } /** Loading
core/proto/android/server/enums.proto +10 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,13 @@ enum DeviceIdleModeEnum { // Device idle mode - active in full mode. DEVICE_IDLE_MODE_DEEP = 2; } enum ErrorSource { ERROR_SOURCE_UNKNOWN = 0; // Data app DATA_APP = 1; // System app SYSTEM_APP = 2; // System server. SYSTEM_SERVER = 3; }
services/core/java/com/android/server/am/ActivityManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -8568,7 +8568,8 @@ public class ActivityManagerService extends IActivityManager.Stub r != null ? (r.isInterestingToUserLocked() ? StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND) : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN, (r != null) ? r.getProcessClassEnum() : 0 ); final int relaunchReason = r == null ? RELAUNCH_REASON_NONE Loading Loading @@ -8751,7 +8752,7 @@ public class ActivityManagerService extends IActivityManager.Stub processName, r == null ? -1 : r.info.flags, tag, crashInfo.exceptionMessage); StatsLog.write(StatsLog.WTF_OCCURRED, callingUid, tag, processName, callingPid); callingPid, (r != null) ? r.getProcessClassEnum() : 0); addErrorToDropBox("wtf", r, processName, null, null, null, tag, null, null, crashInfo); Loading
services/core/java/com/android/server/am/ProcessRecord.java +15 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.os.SystemClock; import android.os.Trace; import android.os.UserHandle; import android.provider.Settings; import android.server.ServerProtoEnums; import android.util.ArrayMap; import android.util.ArraySet; import android.util.DebugUtils; Loading Loading @@ -1224,6 +1225,17 @@ final class ProcessRecord implements WindowProcessListener { return mWindowProcessController.getInputDispatchingTimeout(); } public int getProcessClassEnum() { if (pid == MY_PID) { return ServerProtoEnums.SYSTEM_SERVER; } if (info == null) { return ServerProtoEnums.ERROR_SOURCE_UNKNOWN; } return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ? ServerProtoEnums.SYSTEM_APP : ServerProtoEnums.DATA_APP; } void appNotResponding(String activityShortComponentName, ApplicationInfo aInfo, String parentShortComponentName, WindowProcessController parentProcess, boolean aboveSystem, String annotation) { Loading Loading @@ -1380,7 +1392,9 @@ final class ProcessRecord implements WindowProcessListener { : StatsLog.ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE, isInterestingToUserLocked() ? StatsLog.ANROCCURRED__FOREGROUND_STATE__FOREGROUND : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND); : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND, getProcessClassEnum(), (this.info != null) ? this.info.packageName : ""); final ProcessRecord parentPr = parentProcess != null ? (ProcessRecord) parentProcess.mOwner : null; mService.addErrorToDropBox("anr", this, processName, activityShortComponentName, Loading