File: JVMDITools.cpp

package info (click to toggle)
openjdk-11-jre-dcevm 11.0.15%2B1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 221,420 kB
  • sloc: java: 1,363,561; cpp: 967,919; ansic: 69,480; xml: 62,475; sh: 8,106; asm: 3,475; python: 1,667; javascript: 943; makefile: 397; sed: 172; perl: 114
file content (169 lines) | stat: -rw-r--r-- 6,782 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*
 * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

#include "jvmdi.h"
#include "JVMDITools.h"

extern "C" {

char const *TranslateEvent(jint kind) {
    switch (kind) {
    case JVMDI_EVENT_SINGLE_STEP:
        return ("JVMDI_EVENT_SINGLE_STEP");
    case JVMDI_EVENT_BREAKPOINT:
        return ("JVMDI_EVENT_BREAKPOINT");
    case JVMDI_EVENT_FRAME_POP:
        return ("JVMDI_EVENT_FRAME_POP");
    case JVMDI_EVENT_EXCEPTION:
        return ("JVMDI_EVENT_EXCEPTION");
    case JVMDI_EVENT_USER_DEFINED:
        return ("JVMDI_EVENT_USER_DEFINED");
    case JVMDI_EVENT_THREAD_START:
        return ("JVMDI_EVENT_THREAD_START");
    case JVMDI_EVENT_THREAD_END:
        return ("JVMDI_EVENT_THREAD_END");
    case JVMDI_EVENT_CLASS_PREPARE:
        return ("JVMDI_EVENT_CLASS_PREPARE");
    case JVMDI_EVENT_CLASS_UNLOAD:
        return ("JVMDI_EVENT_CLASS_UNLOAD");
    case JVMDI_EVENT_CLASS_LOAD:
        return ("JVMDI_EVENT_CLASS_LOAD");
    case JVMDI_EVENT_FIELD_ACCESS:
        return ("JVMDI_EVENT_FIELD_ACCESS");
    case JVMDI_EVENT_FIELD_MODIFICATION:
        return ("JVMDI_EVENT_FIELD_MODIFICATION");
    case JVMDI_EVENT_EXCEPTION_CATCH:
        return ("JVMDI_EVENT_EXCEPTION_CATCH");
    case JVMDI_EVENT_METHOD_ENTRY:
        return ("JVMDI_EVENT_METHOD_ENTRY");
    case JVMDI_EVENT_METHOD_EXIT:
        return ("JVMDI_EVENT_METHOD_EXIT");
    case JVMDI_EVENT_VM_INIT:
        return ("JVMDI_EVENT_VM_INIT");
    case JVMDI_EVENT_VM_DEATH:
        return ("JVMDI_EVENT_VM_DEATH");
    default:
        return ("<Unknown Event>");
    }
}

char const *TranslateError(jvmdiError err) {
    switch (err) {
    case JVMDI_ERROR_NONE:
        return ("JVMDI_ERROR_NONE");
    case JVMDI_ERROR_OUT_OF_MEMORY:
        return ("JVMDI_ERROR_OUT_OF_MEMORY");
    case JVMDI_ERROR_ACCESS_DENIED:
        return ("JVMDI_ERROR_ACCESS_DENIED");
    case JVMDI_ERROR_UNATTACHED_THREAD:
        return ("JVMDI_ERROR_UNATTACHED_THREAD");
    case JVMDI_ERROR_VM_DEAD:
        return ("JVMDI_ERROR_VM_DEAD");
    case JVMDI_ERROR_INTERNAL:
        return ("JVMDI_ERROR_INTERNAL");
    case JVMDI_ERROR_INVALID_THREAD:
        return ("JVMDI_ERROR_INVALID_THREAD");
    case JVMDI_ERROR_INVALID_FIELDID:
        return ("JVMDI_ERROR_INVALID_FIELDID");
    case JVMDI_ERROR_INVALID_METHODID:
        return ("JVMDI_ERROR_INVALID_METHODID");
    case JVMDI_ERROR_INVALID_LOCATION:
        return ("JVMDI_ERROR_INVALID_LOCATION");
    case JVMDI_ERROR_INVALID_FRAMEID:
        return ("JVMDI_ERROR_INVALID_FRAMEID");
    case JVMDI_ERROR_NO_MORE_FRAMES:
        return ("JVMDI_ERROR_NO_MORE_FRAMES");
    case JVMDI_ERROR_OPAQUE_FRAME:
        return ("JVMDI_ERROR_OPAQUE_FRAME");
    case JVMDI_ERROR_NOT_CURRENT_FRAME:
        return ("JVMDI_ERROR_NOT_CURRENT_FRAME");
    case JVMDI_ERROR_TYPE_MISMATCH:
        return ("JVMDI_ERROR_TYPE_MISMATCH");
    case JVMDI_ERROR_INVALID_SLOT:
        return ("JVMDI_ERROR_INVALID_SLOT");
    case JVMDI_ERROR_DUPLICATE:
        return ("JVMDI_ERROR_DUPLICATE");
    case JVMDI_ERROR_THREAD_NOT_SUSPENDED:
        return ("JVMDI_ERROR_THREAD_NOT_SUSPENDED");
    case JVMDI_ERROR_THREAD_SUSPENDED:
        return ("JVMDI_ERROR_THREAD_SUSPENDED");
    case JVMDI_ERROR_INVALID_OBJECT:
        return ("JVMDI_ERROR_INVALID_OBJECT");
    case JVMDI_ERROR_INVALID_CLASS:
        return ("JVMDI_ERROR_INVALID_CLASS");
    case JVMDI_ERROR_CLASS_NOT_PREPARED:
        return ("JVMDI_ERROR_CLASS_NOT_PREPARED");
    case JVMDI_ERROR_NULL_POINTER:
        return ("JVMDI_ERROR_NULL_POINTER");
    case JVMDI_ERROR_ABSENT_INFORMATION:
        return ("JVMDI_ERROR_ABSENT_INFORMATION");
    case JVMDI_ERROR_INVALID_EVENT_TYPE:
        return ("JVMDI_ERROR_INVALID_EVENT_TYPE");
    case JVMDI_ERROR_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_NOT_IMPLEMENTED");
    case JVMDI_ERROR_INVALID_THREAD_GROUP:
        return ("JVMDI_ERROR_INVALID_THREAD_GROUP");
    case JVMDI_ERROR_INVALID_PRIORITY:
        return ("JVMDI_ERROR_INVALID_PRIORITY");
    case JVMDI_ERROR_NOT_FOUND:
        return ("JVMDI_ERROR_NOT_FOUND");
    case JVMDI_ERROR_INVALID_MONITOR:
        return ("JVMDI_ERROR_INVALID_MONITOR");
    case JVMDI_ERROR_ILLEGAL_ARGUMENT:
        return ("JVMDI_ERROR_ILLEGAL_ARGUMENT");
    case JVMDI_ERROR_NOT_MONITOR_OWNER:
        return ("JVMDI_ERROR_NOT_MONITOR_OWNER");
    case JVMDI_ERROR_INTERRUPT:
        return ("JVMDI_ERROR_INTERRUPT");
    case JVMDI_ERROR_INVALID_TYPESTATE:
        return ("JVMDI_ERROR_INVALID_TYPESTATE");
    case JVMDI_ERROR_INVALID_CLASS_FORMAT:
        return ("JVMDI_ERROR_INVALID_CLASS_FORMAT");
    case JVMDI_ERROR_CIRCULAR_CLASS_DEFINITION:
        return ("JVMDI_ERROR_CIRCULAR_CLASS_DEFINITION");
    case JVMDI_ERROR_ADD_METHOD_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_ADD_METHOD_NOT_IMPLEMENTED");
    case JVMDI_ERROR_SCHEMA_CHANGE_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_SCHEMA_CHANGE_NOT_IMPLEMENTED");
    case JVMDI_ERROR_FAILS_VERIFICATION:
        return ("JVMDI_ERROR_FAILS_VERIFICATION");
#ifdef JVMDI_VERSION_1_2
    case JVMDI_ERROR_UNSUPPORTED_VERSION:
        return ("JVMDI_ERROR_UNSUPPORTED_VERSION");
    case JVMDI_ERROR_HIERARCHY_CHANGE_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_HIERARCHY_CHANGE_NOT_IMPLEMENTED");
    case JVMDI_ERROR_DELETE_METHOD_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_DELETE_METHOD_NOT_IMPLEMENTED");
    case JVMDI_ERROR_NAMES_DONT_MATCH:
        return ("JVMDI_ERROR_NAMES_DONT_MATCH");
    case JVMDI_ERROR_CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED");
    case JVMDI_ERROR_METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
        return ("JVMDI_ERROR_METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED");
#endif
    default:
        return ("<Unknown Error>");
    }
}

}