Merge "Stop profiling on uncaught exception."
This commit is contained in:
@@ -4294,6 +4294,16 @@ public final class ActivityThread {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Public entrypoint to stop profiling. This is required to end profiling when the app crashes,
|
||||||
|
* so that profiler data won't be lost.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public void stopProfiling() {
|
||||||
|
mProfiler.stopProfiling();
|
||||||
|
}
|
||||||
|
|
||||||
static final void handleDumpHeap(boolean managed, DumpHeapData dhd) {
|
static final void handleDumpHeap(boolean managed, DumpHeapData dhd) {
|
||||||
if (managed) {
|
if (managed) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -86,6 +86,13 @@ public class RuntimeInit {
|
|||||||
Clog_e(TAG, message.toString(), e);
|
Clog_e(TAG, message.toString(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Try to end profiling. If a profiler is running at this point, and we kill the
|
||||||
|
// process (below), the in-memory buffer will be lost. So try to stop, which will
|
||||||
|
// flush the buffer. (This makes method trace profiling useful to debug crashes.)
|
||||||
|
if (ActivityThread.currentActivityThread() != null) {
|
||||||
|
ActivityThread.currentActivityThread().stopProfiling();
|
||||||
|
}
|
||||||
|
|
||||||
// Bring up crash dialog, wait for it to be dismissed
|
// Bring up crash dialog, wait for it to be dismissed
|
||||||
ActivityManagerNative.getDefault().handleApplicationCrash(
|
ActivityManagerNative.getDefault().handleApplicationCrash(
|
||||||
mApplicationObject, new ApplicationErrorReport.CrashInfo(e));
|
mApplicationObject, new ApplicationErrorReport.CrashInfo(e));
|
||||||
|
|||||||
Reference in New Issue
Block a user