hotspot/src/share/vm/prims/jvmtiExport.hpp
changeset 7896 08aadd7aa3ee
parent 7408 c04a5c989f26
child 7918 ce1e4ae77aea
equal deleted inserted replaced
7895:e71bad345f3a 7896:08aadd7aa3ee
   354   static jint load_agent_library(AttachOperation* op, outputStream* out);
   354   static jint load_agent_library(AttachOperation* op, outputStream* out);
   355 #endif // SERVICES_KERNEL
   355 #endif // SERVICES_KERNEL
   356 
   356 
   357   // SetNativeMethodPrefix support
   357   // SetNativeMethodPrefix support
   358   static char** get_all_native_method_prefixes(int* count_ptr);
   358   static char** get_all_native_method_prefixes(int* count_ptr);
   359 
       
   360   // call after CMS has completed referencing processing
       
   361   static void cms_ref_processing_epilogue() KERNEL_RETURN;
       
   362 };
   359 };
   363 
   360 
   364 // Support class used by JvmtiDynamicCodeEventCollector and others. It
   361 // Support class used by JvmtiDynamicCodeEventCollector and others. It
   365 // describes a single code blob by name and address range.
   362 // describes a single code blob by name and address range.
   366 class JvmtiCodeBlobDesc : public CHeapObj {
   363 class JvmtiCodeBlobDesc : public CHeapObj {
   490 };
   487 };
   491 
   488 
   492 
   489 
   493 // Base class for reporting GC events to JVMTI.
   490 // Base class for reporting GC events to JVMTI.
   494 class JvmtiGCMarker : public StackObj {
   491 class JvmtiGCMarker : public StackObj {
   495  private:
   492  public:
   496   bool _full;                           // marks a "full" GC
   493   JvmtiGCMarker() KERNEL_RETURN;
   497   unsigned int _invocation_count;       // GC invocation count
   494   ~JvmtiGCMarker() KERNEL_RETURN;
   498  protected:
   495 };
   499   JvmtiGCMarker(bool full) KERNEL_RETURN;       // protected
       
   500   ~JvmtiGCMarker() KERNEL_RETURN;               // protected
       
   501 };
       
   502 
       
   503 
       
   504 // Support class used to report GC events to JVMTI. The class is stack
       
   505 // allocated and should be placed in the doit() implementation of all
       
   506 // vm operations that do a stop-the-world GC for failed allocation.
       
   507 //
       
   508 // Usage :-
       
   509 //
       
   510 // void VM_GenCollectForAllocation::doit() {
       
   511 //   JvmtiGCForAllocationMarker jgcm;
       
   512 //   :
       
   513 // }
       
   514 //
       
   515 // If jvmti is not enabled the constructor and destructor is essentially
       
   516 // a no-op (no overhead).
       
   517 //
       
   518 class JvmtiGCForAllocationMarker : public JvmtiGCMarker {
       
   519  public:
       
   520   JvmtiGCForAllocationMarker() : JvmtiGCMarker(false) {
       
   521   }
       
   522 };
       
   523 
       
   524 // Support class used to report GC events to JVMTI. The class is stack
       
   525 // allocated and should be placed in the doit() implementation of all
       
   526 // vm operations that do a "full" stop-the-world GC. This class differs
       
   527 // from JvmtiGCForAllocationMarker in that this class assumes that a
       
   528 // "full" GC will happen.
       
   529 //
       
   530 // Usage :-
       
   531 //
       
   532 // void VM_GenCollectFull::doit() {
       
   533 //   JvmtiGCFullMarker jgcm;
       
   534 //   :
       
   535 // }
       
   536 //
       
   537 class JvmtiGCFullMarker : public JvmtiGCMarker {
       
   538  public:
       
   539   JvmtiGCFullMarker() : JvmtiGCMarker(true) {
       
   540   }
       
   541 };
       
   542 
       
   543 
   496 
   544 // JvmtiHideSingleStepping is a helper class for hiding
   497 // JvmtiHideSingleStepping is a helper class for hiding
   545 // internal single step events.
   498 // internal single step events.
   546 class JvmtiHideSingleStepping : public StackObj {
   499 class JvmtiHideSingleStepping : public StackObj {
   547  private:
   500  private: