< prev index next >

src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp

Print this page

  8  *
  9  * This code is distributed in the hope that it will be useful, but WITHOUT
 10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12  * version 2 for more details (a copy is included in the LICENSE file that
 13  * accompanied this code).
 14  *
 15  * You should have received a copy of the GNU General Public License version
 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
 26 #define SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
 27 

 28 #include "memory/allocation.hpp"
 29 #include "utilities/debug.hpp"
 30 
 31 class OldObjectRoot : public AllStatic {
 32  public:
 33   enum System {
 34     _system_undetermined,
 35     _universe,
 36     _global_jni_handles,
 37     _threads,


 38     _object_synchronizer,
 39     _vm_global,
 40     _class_loader_data,
 41     _management,
 42     _jvmti,
 43     _code_cache,
 44     _aot,
 45     JVMCI_ONLY(_jvmci COMMA)
 46     _number_of_systems
 47   };
 48 
 49   enum Type {
 50     _type_undetermined,
 51     _stack_variable,
 52     _local_jni_handle,
 53     _global_jni_handle,

 54     _handle_area,
 55     _number_of_types
 56   };
 57 
 58   static const char* system_description(System system) {
 59     switch (system) {
 60       case _system_undetermined:
 61         return "<unknown>";
 62       case _universe:
 63         return "Universe";
 64       case _global_jni_handles:
 65         return "Global JNI Handles";
 66       case _threads:
 67         return "Threads";
 68       case _object_synchronizer:
 69         return "Object Monitor";
 70       case _vm_global:
 71         return "VM Global";
 72       case _class_loader_data:
 73         return "Class Loader Data";
 74       case _management:
 75         return "Management";
 76       case _jvmti:
 77         return "JVMTI";
 78       case _code_cache:
 79         return "Code Cache";
 80       case _aot:
 81         return "AOT";
 82 #if INCLUDE_JVMCI
 83       case _jvmci:
 84         return "JVMCI";
 85 #endif
 86       default:
 87         ShouldNotReachHere();
 88     }
 89     return NULL;
 90   }
 91 
 92   static const char* type_description(Type type) {
 93     switch (type) {
 94       case _type_undetermined:
 95         return "<unknown>";
 96       case _stack_variable:
 97         return "Stack Variable";
 98       case _local_jni_handle:
 99         return "Local JNI Handle";
100       case _global_jni_handle:
101         return "Global JNI Handle";
102       case _handle_area:
103         return "Handle Area";
104       default:
105         ShouldNotReachHere();
106     }
107     return NULL;
108   }
109 };
110 
111 #endif // SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP

  8  *
  9  * This code is distributed in the hope that it will be useful, but WITHOUT
 10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12  * version 2 for more details (a copy is included in the LICENSE file that
 13  * accompanied this code).
 14  *
 15  * You should have received a copy of the GNU General Public License version
 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
 26 #define SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
 27 
 28 #include "gc/shared/oopStorageSet.hpp"
 29 #include "memory/allocation.hpp"

 30 
 31 class OldObjectRoot : public AllStatic {
 32  public:
 33   enum System {
 34     _system_undetermined,
 35     _universe,

 36     _threads,
 37     _strong_oop_storage_set_first,
 38     _strong_oop_storage_set_last = _strong_oop_storage_set_first + OopStorageSet::strong_count - 1,
 39     _object_synchronizer,

 40     _class_loader_data,
 41     _management,
 42     _jvmti,
 43     _code_cache,
 44     _aot,
 45     JVMCI_ONLY(_jvmci COMMA)
 46     _number_of_systems
 47   };
 48 
 49   enum Type {
 50     _type_undetermined,
 51     _stack_variable,
 52     _local_jni_handle,
 53     _global_jni_handle,
 54     _global_oop_handle,
 55     _handle_area,
 56     _number_of_types
 57   };
 58 
 59   static OopStorage* system_oop_storage(System system);
 60   static const char* system_description(System system);
 61   static const char* type_description(Type type);
















































 62 };
 63 
 64 #endif // SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
< prev index next >