< prev index next >

src/share/vm/prims/jvmtiExport.hpp

Print this page




 355       record_vm_internal_object_allocation(object);
 356     }
 357   }
 358   inline static void post_array_size_exhausted() {
 359     if (should_post_resource_exhausted()) {
 360       post_resource_exhausted(JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR,
 361                               "Requested array size exceeds VM limit");
 362     }
 363   }
 364 
 365   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
 366   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
 367 
 368   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
 369   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
 370   static void gc_epilogue() NOT_JVMTI_RETURN;
 371 
 372   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
 373 
 374   // attach support

 375   static jint load_agent_library(AttachOperation* op, outputStream* out) NOT_JVMTI_RETURN_(JNI_ERR);
 376 
 377   // SetNativeMethodPrefix support
 378   static char** get_all_native_method_prefixes(int* count_ptr) NOT_JVMTI_RETURN_(NULL);
 379 };
 380 
 381 // Support class used by JvmtiDynamicCodeEventCollector and others. It
 382 // describes a single code blob by name and address range.
 383 class JvmtiCodeBlobDesc : public CHeapObj<mtInternal> {
 384  private:
 385   char _name[64];
 386   address _code_begin;
 387   address _code_end;
 388 
 389  public:
 390   JvmtiCodeBlobDesc(const char *name, address code_begin, address code_end) {
 391     assert(name != NULL, "all code blobs must be named");
 392     strncpy(_name, name, sizeof(_name));
 393     _name[sizeof(_name)-1] = '\0';
 394     _code_begin = code_begin;




 355       record_vm_internal_object_allocation(object);
 356     }
 357   }
 358   inline static void post_array_size_exhausted() {
 359     if (should_post_resource_exhausted()) {
 360       post_resource_exhausted(JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR,
 361                               "Requested array size exceeds VM limit");
 362     }
 363   }
 364 
 365   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
 366   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
 367 
 368   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
 369   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
 370   static void gc_epilogue() NOT_JVMTI_RETURN;
 371 
 372   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
 373 
 374   // attach support
 375   static jint load_agent_library(const char *agent, const char *absParam, const char *options, outputStream* out) NOT_JVMTI_RETURN_(JNI_ERR);
 376   static jint load_agent_library(AttachOperation* op, outputStream* out) NOT_JVMTI_RETURN_(JNI_ERR);
 377 
 378   // SetNativeMethodPrefix support
 379   static char** get_all_native_method_prefixes(int* count_ptr) NOT_JVMTI_RETURN_(NULL);
 380 };
 381 
 382 // Support class used by JvmtiDynamicCodeEventCollector and others. It
 383 // describes a single code blob by name and address range.
 384 class JvmtiCodeBlobDesc : public CHeapObj<mtInternal> {
 385  private:
 386   char _name[64];
 387   address _code_begin;
 388   address _code_end;
 389 
 390  public:
 391   JvmtiCodeBlobDesc(const char *name, address code_begin, address code_end) {
 392     assert(name != NULL, "all code blobs must be named");
 393     strncpy(_name, name, sizeof(_name));
 394     _name[sizeof(_name)-1] = '\0';
 395     _code_begin = code_begin;


< prev index next >