< prev index next >

src/hotspot/share/prims/jvmtiExport.hpp

Print this page
rev 47819 : imported patch 10.07.open.rebase_20171110.dcubed


 382                               "Requested array size exceeds VM limit");
 383     }
 384   }
 385 
 386   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
 387   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
 388 
 389   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
 390   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
 391   static void gc_epilogue() NOT_JVMTI_RETURN;
 392 
 393   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
 394 
 395 #if INCLUDE_SERVICES
 396   // attach support
 397   static jint load_agent_library(const char *agent, const char *absParam, const char *options, outputStream* out) NOT_JVMTI_RETURN_(JNI_ERR);
 398 #endif
 399 
 400   // SetNativeMethodPrefix support
 401   static char** get_all_native_method_prefixes(int* count_ptr) NOT_JVMTI_RETURN_(NULL);








 402 };
 403 
 404 // Support class used by JvmtiDynamicCodeEventCollector and others. It
 405 // describes a single code blob by name and address range.
 406 class JvmtiCodeBlobDesc : public CHeapObj<mtInternal> {
 407  private:
 408   char _name[64];
 409   address _code_begin;
 410   address _code_end;
 411 
 412  public:
 413   JvmtiCodeBlobDesc(const char *name, address code_begin, address code_end) {
 414     assert(name != NULL, "all code blobs must be named");
 415     strncpy(_name, name, sizeof(_name));
 416     _name[sizeof(_name)-1] = '\0';
 417     _code_begin = code_begin;
 418     _code_end = code_end;
 419   }
 420   char* name()                  { return _name; }
 421   address code_begin()          { return _code_begin; }




 382                               "Requested array size exceeds VM limit");
 383     }
 384   }
 385 
 386   static void cleanup_thread             (JavaThread* thread) NOT_JVMTI_RETURN;
 387   static void clear_detected_exception   (JavaThread* thread) NOT_JVMTI_RETURN;
 388 
 389   static void oops_do(OopClosure* f) NOT_JVMTI_RETURN;
 390   static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN;
 391   static void gc_epilogue() NOT_JVMTI_RETURN;
 392 
 393   static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN;
 394 
 395 #if INCLUDE_SERVICES
 396   // attach support
 397   static jint load_agent_library(const char *agent, const char *absParam, const char *options, outputStream* out) NOT_JVMTI_RETURN_(JNI_ERR);
 398 #endif
 399 
 400   // SetNativeMethodPrefix support
 401   static char** get_all_native_method_prefixes(int* count_ptr) NOT_JVMTI_RETURN_(NULL);
 402 
 403   // JavaThread lifecycle support:
 404   static jvmtiError cv_external_thread_to_JavaThread(ThreadsList * t_list,
 405                                                      jthread thread,
 406                                                      JavaThread ** jt_pp,
 407                                                      oop * thread_oop_p);
 408   static jvmtiError cv_oop_to_JavaThread(ThreadsList * t_list, oop thread_oop,
 409                                          JavaThread ** jt_pp);
 410 };
 411 
 412 // Support class used by JvmtiDynamicCodeEventCollector and others. It
 413 // describes a single code blob by name and address range.
 414 class JvmtiCodeBlobDesc : public CHeapObj<mtInternal> {
 415  private:
 416   char _name[64];
 417   address _code_begin;
 418   address _code_end;
 419 
 420  public:
 421   JvmtiCodeBlobDesc(const char *name, address code_begin, address code_end) {
 422     assert(name != NULL, "all code blobs must be named");
 423     strncpy(_name, name, sizeof(_name));
 424     _name[sizeof(_name)-1] = '\0';
 425     _code_begin = code_begin;
 426     _code_end = code_end;
 427   }
 428   char* name()                  { return _name; }
 429   address code_begin()          { return _code_begin; }


< prev index next >