Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7cb994b authored by duguowei's avatar duguowei Committed by Guowei Du
Browse files

Add runtime crash information to sysprops



- sys.system_server.crash_java
How many times the system server has crashed within
Java layer. sys.system_server.start_count is the time
that system_server has started.

Normally, (start_count - 1 - crash_java) is the count of
native crash or the other native processes triggered
system_server restart.

We expect the start_count is 1, and the crash_java is 0.

$ getprop | grep system_server
[sys.system_server.start_count]: [5]
[sys.system_server.crash_java]: [2]
...

Signed-off-by: default avatarduguowei <duguowei@xiaomi.corp-partner.google.com>
Change-Id: I14af2025def1ad8cb937b9e0dbd6d3a9d34c8558
parent 089c119f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -62,6 +62,8 @@ public class RuntimeInit {
    private static IBinder mApplicationObject;

    private static volatile boolean mCrashing = false;
    private static final String SYSPROP_CRASH_COUNT = "sys.system_server.crash_java";
    private static int mCrashCount;

    private static volatile ApplicationWtfHandler sDefaultApplicationWtfHandler;

@@ -105,6 +107,8 @@ public class RuntimeInit {
            // first clause in either of these two cases, only for system_server.
            if (mApplicationObject == null && (Process.SYSTEM_UID == Process.myUid())) {
                Clog_e(TAG, "*** FATAL EXCEPTION IN SYSTEM PROCESS: " + t.getName(), e);
                mCrashCount = SystemProperties.getInt(SYSPROP_CRASH_COUNT, 0) + 1;
                SystemProperties.set(SYSPROP_CRASH_COUNT, String.valueOf(mCrashCount));
            } else {
                logUncaught(t.getName(), ActivityThread.currentProcessName(), Process.myPid(), e);
            }