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