diff options
author | Jeff Hao <jeffhao@google.com> | 2013-08-29 14:04:34 -0700 |
---|---|---|
committer | Jeff Hao <jeffhao@google.com> | 2013-08-30 18:02:06 +0000 |
commit | 07344a400805d3d267352bf2694e728b29aa8ea8 (patch) | |
tree | 065786a773ec96767d26cdf9c76ea155e5e2a8b7 /vm | |
parent | 8dd134b6a68f79c5369b6015a543eb7c0f5e649e (diff) | |
download | android_dalvik-07344a400805d3d267352bf2694e728b29aa8ea8.tar.gz android_dalvik-07344a400805d3d267352bf2694e728b29aa8ea8.tar.bz2 android_dalvik-07344a400805d3d267352bf2694e728b29aa8ea8.zip |
Change IsMethodTracingActive to GetMethodTracingMode.
This allows traceview to tell whether tracing is active, and whether
it is sampling or method tracing.
Bug: 9968521
Change-Id: I72100d1536ea3168998110ec1cfa5a183b55a67c
(cherry picked from commit 9d3a0a2e253aecd07c4a053c19cf9b0ccaa2db49)
Diffstat (limited to 'vm')
-rw-r--r-- | vm/Profile.cpp | 12 | ||||
-rw-r--r-- | vm/Profile.h | 11 | ||||
-rw-r--r-- | vm/interp/Interp.cpp | 5 | ||||
-rw-r--r-- | vm/native/dalvik_system_VMDebug.cpp | 12 |
4 files changed, 28 insertions, 12 deletions
diff --git a/vm/Profile.cpp b/vm/Profile.cpp index 08e146301..866311cda 100644 --- a/vm/Profile.cpp +++ b/vm/Profile.cpp @@ -691,12 +691,18 @@ static u4 getClockOverhead() } /* - * 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; + } } /* diff --git a/vm/Profile.h b/vm/Profile.h index 6a2c4be86..9059181a9 100644 --- a/vm/Profile.h +++ b/vm/Profile.h @@ -87,10 +87,19 @@ struct AllocProfState { */ 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); diff --git a/vm/interp/Interp.cpp b/vm/interp/Interp.cpp index 2b13bd8e4..42e2ecad7 100644 --- a/vm/interp/Interp.cpp +++ b/vm/interp/Interp.cpp @@ -1660,8 +1660,9 @@ void dvmInitializeInterpBreak(Thread* thread) 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); diff --git a/vm/native/dalvik_system_VMDebug.cpp b/vm/native/dalvik_system_VMDebug.cpp index 8ba304a6e..53773575f 100644 --- a/vm/native/dalvik_system_VMDebug.cpp +++ b/vm/native/dalvik_system_VMDebug.cpp @@ -301,16 +301,16 @@ static void Dalvik_dalvik_system_VMDebug_startMethodTracingFilename(const u4* ar } /* - * 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()); } /* @@ -827,8 +827,8 @@ const DalvikNativeMethod dvm_dalvik_system_VMDebug[] = { 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", |