33 #include INCLUDE_JMM_H
53 # define TRACEJMMCALLS(x) \
55 if (opt_TraceJMMCalls) { \
62 # define TRACEJMMCALLS(x)
115 if (support == NULL) {
130 log_println(
"jmm_GetInputArguments: IMPLEMENT ME!");
137 log_println(
"jmm_GetInputArgumentArray: IMPLEMENT ME!");
144 TRACEJMMCALLS((
"jmm_GetMemoryPools(env=%p, obj=%p)", env, obj));
156 TRACEJMMCALLS((
"jmm_GetMemoryManagers(env=%p, obj=%p)", env, obj));
168 log_println(
"jmm_GetMemoryPoolUsage: IMPLEMENT ME!");
175 log_println(
"jmm_GetPeakMemoryPoolUsage: IMPLEMENT ME!");
182 log_println(
"jmm_GetPoolCollectionUsage: IMPLEMENT ME!");
195 log_println(
"jmm_SetPoolThreshold: IMPLEMENT ME!");
209 TRACEJMMCALLS((
"jmm_GetBoolAttribute(env=%p, att=%d)", env, att));
217 case JMM_VERBOSE_CLASS:
221 log_println(
"jmm_GetBoolAttribute: Unknown attribute %d", att);
231 TRACEJMMCALLS((
"jmm_SetBoolAttribute(env=%p, att=%d, flag=%d)", env, att, flag));
237 case JMM_VERBOSE_CLASS:
241 log_println(
"jmm_SetBoolAttribute: Unknown attribute %d", att);
251 TRACEJMMCALLS((
"jmm_GetLongAttribute(env=%p, obj=%p, att=%d)", env, obj, att));
256 case JMM_CLASS_LOADED_COUNT:
259 case JMM_CLASS_UNLOADED_COUNT:
263 case JMM_THREAD_TOTAL_COUNT:
266 case JMM_THREAD_LIVE_COUNT:
269 case JMM_THREAD_PEAK_COUNT:
272 case JMM_THREAD_DAEMON_COUNT:
275 case JMM_JVM_INIT_DONE_TIME_MS:
278 case JMM_OS_PROCESS_ID:
282 log_println(
"jmm_GetLongAttribute: Unknown attribute %d", att);
292 log_println(
"jmm_GetLongAttributes: IMPLEMENT ME!");
313 log_println(
"jmm_GetLoadedClasses: IMPLEMENT ME!");
320 TRACEJMMCALLS((
"jmm_ResetStatistic(env=%p, obj=%p, type=%d)", env, obj, type));
323 case JMM_STAT_PEAK_THREAD_COUNT:
327 log_println(
"jmm_ResetStatistic: Unknown statistic type %d", type);
337 log_println(
"jmm_GetThreadCpuTime: IMPLEMENT ME!");
344 log_println(
"jmm_GetThreadCpuTimeWithKind: IMPLEMENT ME!");
351 log_println(
"jmm_GetVMGlobalNames: IMPLEMENT ME!");
371 log_println(
"jmm_GetInternalThreadTimes: IMPLEMENT ME!");
378 log_println(
"jmm_FindDeadlockedThreads: IMPLEMENT ME!");
385 log_println(
"jmm_FindMonitorDeadlockedThreads: IMPLEMENT ME!");
392 log_println(
"jmm_GetGCExtAttributeInfo: IMPLEMENT ME!");
460 if (version == JMM_VERSION_1_0) {
static pid_t getpid(void)
virtual java_handle_array_t * get_handle() const
jlong jmm_GetThreadCpuTimeWithKind(JNIEnv *env, jlong thread_id, jboolean user_sys_cpu_time)
jobjectArray jmm_FindMonitorDeadlockedThreads(JNIEnv *env)
jobject jmm_GetInputArguments(JNIEnv *env)
static void * get_jmm_interface(int version)
Return the requested management interface.
void jmm_GetLastGCStat(JNIEnv *env, jobject obj, jmmGCStat *gc_stat)
jobjectArray jmm_GetInputArgumentArray(JNIEnv *env)
jobject jmm_GetPeakMemoryPoolUsage(JNIEnv *env, jobject obj)
jobjectArray jmm_GetVMGlobalNames(JNIEnv *env)
Actual implementation of access class for Java Object arrays.
jobjectArray jmm_GetLoadedClasses(JNIEnv *env)
void jmm_SetPoolSensor(JNIEnv *env, jobject obj, jmmThresholdType type, jobject sensorObj)
jobject jmm_GetMemoryPoolUsage(JNIEnv *env, jobject obj)
int32_t get_number_of_daemon_java_threads()
Return the number of daemon threads visible to Java.
const jmmOptionalSupport & get_optional_support() const
Return a pointer to the optional support structure.
jobject jmm_GetMemoryUsage(JNIEnv *env, jboolean heap)
void log_println(const char *text,...)
jobjectArray jmm_GetMemoryPools(JNIEnv *env, jobject obj)
jint jmm_GetOptionalSupport(JNIEnv *env, jmmOptionalSupport *support)
Management()
Initialize the Management subsystem.
jobjectArray jmm_DumpThreads(JNIEnv *env, jlongArray thread_ids, jboolean locked_monitors, jboolean locked_synchronizers)
void reset_peak_of_active_java_threads()
int32_t get_peak_of_active_java_threads()
jlong jmm_GetThreadCpuTime(JNIEnv *env, jlong thread_id)
static ThreadList * get()
Provides access to singleton.
struct jmmInterface_1_ jmm_interface
jint jmm_GetVMGlobals(JNIEnv *env, jobjectArray names, jmmVMGlobal *globals, jint count)
static void version(bool opt_exit)
void jmm_SetVMGlobal(JNIEnv *env, jstring flag_name, jvalue new_value)
int32_t get_number_of_active_java_threads()
jint jmm_GetInternalThreadTimes(JNIEnv *env, jobjectArray names, jlongArray times)
jobject jmm_GetPoolCollectionUsage(JNIEnv *env, jobject obj)
static void * memcpy(void *dest, const void *src, size_t n)
jint jmm_GetGCExtAttributeInfo(JNIEnv *env, jobject mgr, jmmExtAttributeInfo *info, jint count)
jint jmm_GetVersion(JNIEnv *env)
jmmOptionalSupport _optional_support
jobjectArray jmm_GetMemoryManagers(JNIEnv *env, jobject obj)
classinfo * class_java_lang_String
jobjectArray jmm_FindDeadlockedThreads(JNIEnv *env, jboolean object_monitors_only)
jint jmm_DumpHeap0(JNIEnv *env, jstring outputfile, jboolean live)
JNIEnv jthread jmethodID jlocation jclass jobject jfieldID char jvalue new_value
jint jmm_GetLongAttributes(JNIEnv *env, jobject obj, jmmLongAttribute *atts, jint count, jlong *result)
jlong jmm_GetLongAttribute(JNIEnv *env, jobject obj, jmmLongAttribute att)
alloc::map< PassInfo::IDTy, const char * >::type names
jboolean jmm_ResetStatistic(JNIEnv *env, jvalue obj, jmmStatisticType type)
jint jmm_GetThreadInfo(JNIEnv *env, jlongArray ids, jint maxDepth, jobjectArray infoArray)
s4 classcache_get_loaded_class_count(void)
int32_t get_number_of_started_java_threads()
jboolean jmm_GetBoolAttribute(JNIEnv *env, jmmBoolAttribute att)
jboolean jmm_SetBoolAttribute(JNIEnv *env, jmmBoolAttribute att, jboolean flag)
jlong jmm_SetPoolThreshold(JNIEnv *env, jobject obj, jmmThresholdType type, jlong threshold)
static VM * get_current()