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
|