311 address location, Klass* field_klass, Handle object, jfieldID field,
312 char sig_type, jvalue *value) NOT_JVMTI_RETURN;
313
314 static void post_method_entry (JavaThread *thread, Method* method, frame current_frame) NOT_JVMTI_RETURN;
315 static void post_method_exit (JavaThread *thread, Method* method, frame current_frame) NOT_JVMTI_RETURN;
316
317 static void post_class_load (JavaThread *thread, Klass* klass) NOT_JVMTI_RETURN;
318 static void post_class_unload (Klass* klass) NOT_JVMTI_RETURN;
319 static void post_class_prepare (JavaThread *thread, Klass* klass) NOT_JVMTI_RETURN;
320
321 static void post_thread_start (JavaThread *thread) NOT_JVMTI_RETURN;
322 static void post_thread_end (JavaThread *thread) NOT_JVMTI_RETURN;
323
324 // Support for java.lang.instrument agent loading.
325 static bool _should_post_class_file_load_hook;
326 inline static void set_should_post_class_file_load_hook(bool on) { _should_post_class_file_load_hook = on; }
327 inline static bool should_post_class_file_load_hook() {
328 JVMTI_ONLY(return _should_post_class_file_load_hook);
329 NOT_JVMTI(return false;)
330 }
331 // Return true if the class was modified by the hook.
332 static bool post_class_file_load_hook(Symbol* h_name, Handle class_loader,
333 Handle h_protection_domain,
334 unsigned char **data_ptr, unsigned char **end_ptr,
335 JvmtiCachedClassFileData **cache_ptr) NOT_JVMTI_RETURN_(false);
336 static void post_native_method_bind(Method* method, address* function_ptr) NOT_JVMTI_RETURN;
337 static void post_compiled_method_load(nmethod *nm) NOT_JVMTI_RETURN;
338 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
339
340 // used to post a CompiledMethodUnload event
341 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) NOT_JVMTI_RETURN;
342
343 // similiar to post_dynamic_code_generated except that it can be used to
344 // post a DynamicCodeGenerated event while holding locks in the VM. Any event
345 // posted using this function is recorded by the enclosing event collector
346 // -- JvmtiDynamicCodeEventCollector.
347 static void post_dynamic_code_generated_while_holding_locks(const char* name, address code_begin, address code_end) NOT_JVMTI_RETURN;
348
349 static void post_garbage_collection_finish() NOT_JVMTI_RETURN;
350 static void post_garbage_collection_start() NOT_JVMTI_RETURN;
|
311 address location, Klass* field_klass, Handle object, jfieldID field,
312 char sig_type, jvalue *value) NOT_JVMTI_RETURN;
313
314 static void post_method_entry (JavaThread *thread, Method* method, frame current_frame) NOT_JVMTI_RETURN;
315 static void post_method_exit (JavaThread *thread, Method* method, frame current_frame) NOT_JVMTI_RETURN;
316
317 static void post_class_load (JavaThread *thread, Klass* klass) NOT_JVMTI_RETURN;
318 static void post_class_unload (Klass* klass) NOT_JVMTI_RETURN;
319 static void post_class_prepare (JavaThread *thread, Klass* klass) NOT_JVMTI_RETURN;
320
321 static void post_thread_start (JavaThread *thread) NOT_JVMTI_RETURN;
322 static void post_thread_end (JavaThread *thread) NOT_JVMTI_RETURN;
323
324 // Support for java.lang.instrument agent loading.
325 static bool _should_post_class_file_load_hook;
326 inline static void set_should_post_class_file_load_hook(bool on) { _should_post_class_file_load_hook = on; }
327 inline static bool should_post_class_file_load_hook() {
328 JVMTI_ONLY(return _should_post_class_file_load_hook);
329 NOT_JVMTI(return false;)
330 }
331 static bool early_class_hook_env();
332 // Return true if the class was modified by the hook.
333 static bool post_class_file_load_hook(Symbol* h_name, Handle class_loader,
334 Handle h_protection_domain,
335 unsigned char **data_ptr, unsigned char **end_ptr,
336 JvmtiCachedClassFileData **cache_ptr) NOT_JVMTI_RETURN_(false);
337 static void post_native_method_bind(Method* method, address* function_ptr) NOT_JVMTI_RETURN;
338 static void post_compiled_method_load(nmethod *nm) NOT_JVMTI_RETURN;
339 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
340
341 // used to post a CompiledMethodUnload event
342 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) NOT_JVMTI_RETURN;
343
344 // similiar to post_dynamic_code_generated except that it can be used to
345 // post a DynamicCodeGenerated event while holding locks in the VM. Any event
346 // posted using this function is recorded by the enclosing event collector
347 // -- JvmtiDynamicCodeEventCollector.
348 static void post_dynamic_code_generated_while_holding_locks(const char* name, address code_begin, address code_end) NOT_JVMTI_RETURN;
349
350 static void post_garbage_collection_finish() NOT_JVMTI_RETURN;
351 static void post_garbage_collection_start() NOT_JVMTI_RETURN;
|