blob: 15057eaeed56b4cca6f6c3fa651556468ac732a0 [file] [log] [blame]
Elliott Hughes872d4ec2011-10-21 17:07:15 -07001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16/*
17 * String constants to go along with enumerated values. (Pity we don't
18 * have enumerated constant reflection in C.) These are only needed for
19 * making the output human-readable.
20 */
21#include "jdwp/jdwp_constants.h"
22
23#include <iostream>
24
25namespace art {
26
27namespace JDWP {
28
Elliott Hughes42d305e2012-01-09 18:05:41 -080029std::ostream& operator<<(std::ostream& os, const JdwpError& rhs) {
30 switch (rhs) {
31 case ERR_NONE: os << "NONE"; break;
32 case ERR_INVALID_THREAD: os << "INVALID_THREAD"; break;
33 case ERR_INVALID_THREAD_GROUP: os << "INVALID_THREAD_GROUP"; break;
34 case ERR_INVALID_PRIORITY: os << "INVALID_PRIORITY"; break;
35 case ERR_THREAD_NOT_SUSPENDED: os << "THREAD_NOT_SUSPENDED"; break;
36 case ERR_THREAD_SUSPENDED: os << "THREAD_SUSPENDED"; break;
37 case ERR_THREAD_NOT_ALIVE: os << "THREAD_NOT_ALIVE"; break;
38 case ERR_INVALID_OBJECT: os << "INVALID_OBJEC"; break;
39 case ERR_INVALID_CLASS: os << "INVALID_CLASS"; break;
40 case ERR_CLASS_NOT_PREPARED: os << "CLASS_NOT_PREPARED"; break;
41 case ERR_INVALID_METHODID: os << "INVALID_METHODID"; break;
42 case ERR_INVALID_LOCATION: os << "INVALID_LOCATION"; break;
43 case ERR_INVALID_FIELDID: os << "INVALID_FIELDID"; break;
44 case ERR_INVALID_FRAMEID: os << "INVALID_FRAMEID"; break;
45 case ERR_NO_MORE_FRAMES: os << "NO_MORE_FRAMES"; break;
46 case ERR_OPAQUE_FRAME: os << "OPAQUE_FRAME"; break;
47 case ERR_NOT_CURRENT_FRAME: os << "NOT_CURRENT_FRAME"; break;
48 case ERR_TYPE_MISMATCH: os << "TYPE_MISMATCH"; break;
49 case ERR_INVALID_SLOT: os << "INVALID_SLOT"; break;
50 case ERR_DUPLICATE: os << "DUPLICATE"; break;
51 case ERR_NOT_FOUND: os << "NOT_FOUND"; break;
52 case ERR_INVALID_MONITOR: os << "INVALID_MONITOR"; break;
53 case ERR_NOT_MONITOR_OWNER: os << "NOT_MONITOR_OWNER"; break;
54 case ERR_INTERRUPT: os << "INTERRUPT"; break;
55 case ERR_INVALID_CLASS_FORMAT: os << "INVALID_CLASS_FORMAT"; break;
56 case ERR_CIRCULAR_CLASS_DEFINITION: os << "CIRCULAR_CLASS_DEFINITION"; break;
57 case ERR_FAILS_VERIFICATION: os << "FAILS_VERIFICATION"; break;
58 case ERR_ADD_METHOD_NOT_IMPLEMENTED: os << "ADD_METHOD_NOT_IMPLEMENTED"; break;
59 case ERR_SCHEMA_CHANGE_NOT_IMPLEMENTED: os << "SCHEMA_CHANGE_NOT_IMPLEMENTED"; break;
60 case ERR_INVALID_TYPESTATE: os << "INVALID_TYPESTATE"; break;
61 case ERR_HIERARCHY_CHANGE_NOT_IMPLEMENTED: os << "HIERARCHY_CHANGE_NOT_IMPLEMENTED"; break;
62 case ERR_DELETE_METHOD_NOT_IMPLEMENTED: os << "DELETE_METHOD_NOT_IMPLEMENTED"; break;
63 case ERR_UNSUPPORTED_VERSION: os << "UNSUPPORTED_VERSION"; break;
64 case ERR_NAMES_DONT_MATCH: os << "NAMES_DONT_MATCH"; break;
65 case ERR_CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED: os << "CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED"; break;
66 case ERR_METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED: os << "METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED"; break;
67 case ERR_NOT_IMPLEMENTED: os << "NOT_IMPLEMENTED"; break;
68 case ERR_NULL_POINTER: os << "NULL_POINTER"; break;
69 case ERR_ABSENT_INFORMATION: os << "ABSENT_INFORMATION"; break;
70 case ERR_INVALID_EVENT_TYPE: os << "INVALID_EVENT_TYPE"; break;
71 case ERR_ILLEGAL_ARGUMENT: os << "ILLEGAL_ARGUMENT"; break;
72 case ERR_OUT_OF_MEMORY: os << "OUT_OF_MEMORY"; break;
73 case ERR_ACCESS_DENIED: os << "ACCESS_DENIED"; break;
74 case ERR_VM_DEAD: os << "VM_DEAD"; break;
75 case ERR_INTERNAL: os << "INTERNAL"; break;
76 case ERR_UNATTACHED_THREAD: os << "UNATTACHED_THREAD"; break;
77 case ERR_INVALID_TAG: os << "INVALID_TAG"; break;
78 case ERR_ALREADY_INVOKING: os << "ALREADY_INVOKING"; break;
79 case ERR_INVALID_INDEX: os << "INVALID_INDEX"; break;
80 case ERR_INVALID_LENGTH: os << "INVALID_LENGTH"; break;
81 case ERR_INVALID_STRING: os << "INVALID_STRING"; break;
82 case ERR_INVALID_CLASS_LOADER: os << "INVALID_CLASS_LOADER"; break;
83 case ERR_INVALID_ARRAY: os << "INVALID_ARRAY"; break;
84 case ERR_TRANSPORT_LOAD: os << "TRANSPORT_LOAD"; break;
85 case ERR_TRANSPORT_INIT: os << "TRANSPORT_INIT"; break;
86 case ERR_NATIVE_METHOD: os << "NATIVE_METHOD"; break;
87 case ERR_INVALID_COUNT: os << "INVALID_COUNT"; break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -070088 default:
Elliott Hughes42d305e2012-01-09 18:05:41 -080089 os << "JdwpError[" << static_cast<int>(rhs) << "]";
Elliott Hughes7b3cdfc2011-12-08 21:28:17 -080090 break;
91 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -070092 return os;
93}
94
Elliott Hughes42d305e2012-01-09 18:05:41 -080095std::ostream& operator<<(std::ostream& os, const JdwpEventKind& rhs) {
96 switch (rhs) {
97 case EK_SINGLE_STEP: os << "SINGLE_STEP"; break;
98 case EK_BREAKPOINT: os << "BREAKPOINT"; break;
99 case EK_FRAME_POP: os << "FRAME_POP"; break;
100 case EK_EXCEPTION: os << "EXCEPTION"; break;
101 case EK_USER_DEFINED: os << "USER_DEFINED"; break;
102 case EK_THREAD_START: os << "THREAD_START"; break;
103 case EK_THREAD_DEATH: os << "THREAD_DEATH"; break;
104 case EK_CLASS_PREPARE: os << "CLASS_PREPARE"; break;
105 case EK_CLASS_UNLOAD: os << "CLASS_UNLOAD"; break;
106 case EK_CLASS_LOAD: os << "CLASS_LOAD"; break;
107 case EK_FIELD_ACCESS: os << "FIELD_ACCESS"; break;
108 case EK_FIELD_MODIFICATION: os << "FIELD_MODIFICATION"; break;
109 case EK_EXCEPTION_CATCH: os << "EXCEPTION_CATCH"; break;
110 case EK_METHOD_ENTRY: os << "METHOD_ENTRY"; break;
111 case EK_METHOD_EXIT: os << "METHOD_EXIT"; break;
112 case EK_METHOD_EXIT_WITH_RETURN_VALUE: os << "METHOD_EXIT_WITH_RETURN_VALUE"; break;
113 case EK_MONITOR_CONTENDED_ENTER: os << "MONITOR_CONTENDED_ENTER"; break;
114 case EK_MONITOR_CONTENDED_ENTERED: os << "MONITOR_CONTENDED_ENTERED"; break;
115 case EK_MONITOR_WAIT: os << "MONITOR_WAIT"; break;
116 case EK_MONITOR_WAITED: os << "MONITOR_WAITED"; break;
117 case EK_VM_START: os << "VM_START"; break;
118 case EK_VM_DEATH: os << "VM_DEATH"; break;
119 case EK_VM_DISCONNECTED: os << "VM_DISCONNECTED"; break;
120 default:
121 os << "JdwpEventKind[" << static_cast<int>(rhs) << "]";
122 break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700123 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700124 return os;
125}
126
Elliott Hughes42d305e2012-01-09 18:05:41 -0800127std::ostream& operator<<(std::ostream& os, const JdwpModKind& rhs) {
128 switch (rhs) {
129 case MK_COUNT: os << "COUNT"; break;
130 case MK_CONDITIONAL: os << "CONDITIONAL"; break;
131 case MK_THREAD_ONLY: os << "THREAD_ONLY"; break;
132 case MK_CLASS_ONLY: os << "CLASS_ONLY"; break;
133 case MK_CLASS_MATCH: os << "CLASS_MATCH"; break;
134 case MK_CLASS_EXCLUDE: os << "CLASS_EXCLUDE"; break;
135 case MK_LOCATION_ONLY: os << "LOCATION_ONLY"; break;
136 case MK_EXCEPTION_ONLY: os << "EXCEPTION_ONLY"; break;
137 case MK_FIELD_ONLY: os << "FIELD_ONLY"; break;
138 case MK_STEP: os << "STEP"; break;
139 case MK_INSTANCE_ONLY: os << "INSTANCE_ONLY"; break;
140 case MK_SOURCE_NAME_MATCH: os << "SOURCE_NAME_MATCH"; break;
141 default:
142 os << "JdwpModKind[" << static_cast<int>(rhs) << "]";
143 break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700144 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700145 return os;
146}
147
Elliott Hughes42d305e2012-01-09 18:05:41 -0800148std::ostream& operator<<(std::ostream& os, const JdwpStepDepth& rhs) {
149 switch (rhs) {
150 case SD_INTO: os << "INTO"; break;
151 case SD_OVER: os << "OVER"; break;
152 case SD_OUT: os << "OUT"; break;
153 default:
154 os << "JdwpStepDepth[" << static_cast<int>(rhs) << "]";
155 break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700156 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700157 return os;
158}
159
Elliott Hughes42d305e2012-01-09 18:05:41 -0800160std::ostream& operator<<(std::ostream& os, const JdwpStepSize& rhs) {
161 switch (rhs) {
162 case SS_MIN: os << "MIN"; break;
163 case SS_LINE: os << "LINE"; break;
164 default:
165 os << "JdwpStepSize[" << static_cast<int>(rhs) << "]";
166 break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700167 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700168 return os;
169}
170
Elliott Hughes42d305e2012-01-09 18:05:41 -0800171std::ostream& operator<<(std::ostream& os, const JdwpSuspendPolicy& rhs) {
172 switch (rhs) {
173 case SP_NONE: os << "NONE"; break;
174 case SP_EVENT_THREAD: os << "EVENT_THREAD"; break;
175 case SP_ALL: os << "ALL"; break;
176 default:
177 os << "JdwpSuspendPolicy[" << static_cast<int>(rhs) << "]";
178 break;
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700179 }
Elliott Hughes42d305e2012-01-09 18:05:41 -0800180 return os;
181}
182
183std::ostream& operator<<(std::ostream& os, const JdwpSuspendStatus& rhs) {
184 switch (rhs) {
185 case SUSPEND_STATUS_NOT_SUSPENDED: os << "NOT SUSPENDED"; break;
186 case SUSPEND_STATUS_SUSPENDED: os << "SUSPENDED"; break;
187 default:
188 os << "JdwpSuspendStatus[" << static_cast<int>(rhs) << "]";
189 break;
190 }
191 return os;
192}
193
194std::ostream& operator<<(std::ostream& os, const JdwpThreadStatus& rhs) {
195 switch (rhs) {
196 case TS_ZOMBIE: os << "ZOMBIE"; break;
197 case TS_RUNNING: os << "RUNNING"; break;
198 case TS_SLEEPING: os << "SLEEPING"; break;
199 case TS_MONITOR: os << "MONITOR"; break;
200 case TS_WAIT: os << "WAIT"; break;
201 default:
202 os << "JdwpThreadStatus[" << static_cast<int>(rhs) << "]";
203 break;
204 }
Elliott Hughes872d4ec2011-10-21 17:07:15 -0700205 return os;
206}
207
208} // namespace JDWP
209
210} // namespace art