}
/*
- * Returns "true" if method tracing is currently active.
+ * Indicates if method tracing is active and what kind of tracing is active.
*/
-bool dvmIsMethodTraceActive()
+TracingMode dvmGetMethodTracingMode()
{
const MethodTraceState* state = &gDvm.methodTrace;
- return state->traceEnabled;
+ if (!state->traceEnabled) {
+ return TRACING_INACTIVE;
+ } else if (state->samplingEnabled) {
+ return SAMPLE_PROFILING_ACTIVE;
+ } else {
+ return METHOD_TRACING_ACTIVE;
+ }
}
/*
*/
void dvmMethodTraceStart(const char* traceFileName, int traceFd, int bufferSize,
int flags, bool directToDdms, bool samplingEnabled, int intervalUs);
-bool dvmIsMethodTraceActive(void);
void dvmMethodTraceStop(void);
/*
+ * Returns current method tracing mode.
+ */
+enum TracingMode {
+ TRACING_INACTIVE,
+ METHOD_TRACING_ACTIVE,
+ SAMPLE_PROFILING_ACTIVE,
+};
+TracingMode dvmGetMethodTracingMode(void);
+
+/*
* Start/stop emulator tracing.
*/
void dvmEmulatorTraceStart(void);
if (gDvm.instructionCountEnableCount > 0) {
dvmEnableSubMode(thread, kSubModeInstCounting);
}
- if (dvmIsMethodTraceActive()) {
- if (gDvm.methodTrace.samplingEnabled) {
+ TracingMode mode = dvmGetMethodTracingMode();
+ if (mode != TRACING_INACTIVE) {
+ if (mode == SAMPLE_PROFILING_ACTIVE) {
dvmEnableSubMode(thread, kSubModeSampleTrace);
} else {
dvmEnableSubMode(thread, kSubModeMethodTrace);
}
/*
- * static boolean isMethodTracingActive()
+ * static int getMethodTracingMode()
*
- * Determine whether method tracing is currently active.
+ * Determine whether method tracing is currently active and what type is active.
*/
-static void Dalvik_dalvik_system_VMDebug_isMethodTracingActive(const u4* args,
+static void Dalvik_dalvik_system_VMDebug_getMethodTracingMode(const u4* args,
JValue* pResult)
{
UNUSED_PARAMETER(args);
- RETURN_BOOLEAN(dvmIsMethodTraceActive());
+ RETURN_INT(dvmGetMethodTracingMode());
}
/*
Dalvik_dalvik_system_VMDebug_startMethodTracingFd },
{ "startMethodTracingFilename", "(Ljava/lang/String;II)V",
Dalvik_dalvik_system_VMDebug_startMethodTracingFilename },
- { "isMethodTracingActive", "()Z",
- Dalvik_dalvik_system_VMDebug_isMethodTracingActive },
+ { "getMethodTracingMode", "()I",
+ Dalvik_dalvik_system_VMDebug_getMethodTracingMode },
{ "stopMethodTracing", "()V",
Dalvik_dalvik_system_VMDebug_stopMethodTracing },
{ "startEmulatorTracing", "()V",