diff options
-rw-r--r-- | core/jni/AndroidRuntime.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index cdce77c775c2..e7b0f7789769 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -889,21 +889,22 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) profileMaxStackDepth, "-Xprofile-max-stack-depth:"); - /* - * Tracing options. - */ - property_get("dalvik.vm.method-trace", propBuf, "false"); - if (strcmp(propBuf, "true") == 0) { - addOption("-Xmethod-trace"); - parseRuntimeOption("dalvik.vm.method-trace-file", - methodTraceFileBuf, - "-Xmethod-trace-file:"); - parseRuntimeOption("dalvik.vm.method-trace-file-siz", - methodTraceFileSizeBuf, - "-Xmethod-trace-file-size:"); - property_get("dalvik.vm.method-trace-stream", propBuf, "false"); + // Trace files are stored in /data/misc/trace which is writable only in debug mode. + property_get("ro.debuggable", propBuf, "0"); + if (strcmp(propBuf, "1") == 0) { + property_get("dalvik.vm.method-trace", propBuf, "false"); if (strcmp(propBuf, "true") == 0) { - addOption("-Xmethod-trace-stream"); + addOption("-Xmethod-trace"); + parseRuntimeOption("dalvik.vm.method-trace-file", + methodTraceFileBuf, + "-Xmethod-trace-file:"); + parseRuntimeOption("dalvik.vm.method-trace-file-siz", + methodTraceFileSizeBuf, + "-Xmethod-trace-file-size:"); + property_get("dalvik.vm.method-trace-stream", propBuf, "false"); + if (strcmp(propBuf, "true") == 0) { + addOption("-Xmethod-trace-stream"); + } } } |