1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License.
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * String constants to go along with enumerated values.  (Pity we don't
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * have enumerated constant reflection in C.)  These are only needed for
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * making the output human-readable.
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project#include "jdwp/JdwpConstants.h"
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the error code.
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpErrorStr(enum JdwpError error)
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (error) {
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NONE:
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NONE";
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_THREAD:
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_THREAD";
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_THREAD_GROUP:
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_THREAD_GROUP";
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_PRIORITY:
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_PRIORITY";
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_THREAD_NOT_SUSPENDED:
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "THREAD_NOT_SUSPENDED";
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_THREAD_SUSPENDED:
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "THREAD_SUSPENDED";
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_OBJECT:
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_OBJEC";
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_CLASS:
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_CLASS";
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_CLASS_NOT_PREPARED:
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "CLASS_NOT_PREPARED";
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_METHODID:
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_METHODID";
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_LOCATION:
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_LOCATION";
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_FIELDID:
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_FIELDID";
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_FRAMEID:
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_FRAMEID";
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NO_MORE_FRAMES:
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NO_MORE_FRAMES";
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_OPAQUE_FRAME:
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "OPAQUE_FRAME";
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NOT_CURRENT_FRAME:
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NOT_CURRENT_FRAME";
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_TYPE_MISMATCH:
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "TYPE_MISMATCH";
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_SLOT:
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_SLOT";
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_DUPLICATE:
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "DUPLICATE";
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NOT_FOUND:
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NOT_FOUND";
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_MONITOR:
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_MONITOR";
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NOT_MONITOR_OWNER:
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NOT_MONITOR_OWNER";
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INTERRUPT:
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INTERRUPT";
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_CLASS_FORMAT:
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_CLASS_FORMAT";
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_CIRCULAR_CLASS_DEFINITION:
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "CIRCULAR_CLASS_DEFINITION";
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_FAILS_VERIFICATION:
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "FAILS_VERIFICATION";
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_ADD_METHOD_NOT_IMPLEMENTED:
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "ADD_METHOD_NOT_IMPLEMENTED";
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_SCHEMA_CHANGE_NOT_IMPLEMENTED:
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "SCHEMA_CHANGE_NOT_IMPLEMENTED";
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_TYPESTATE:
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_TYPESTATE";
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_HIERARCHY_CHANGE_NOT_IMPLEMENTED:
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "HIERARCHY_CHANGE_NOT_IMPLEMENTED";
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_DELETE_METHOD_NOT_IMPLEMENTED:
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "DELETE_METHOD_NOT_IMPLEMENTED";
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_UNSUPPORTED_VERSION:
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "UNSUPPORTED_VERSION";
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NAMES_DONT_MATCH:
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NAMES_DONT_MATCH";
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED";
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED";
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NOT_IMPLEMENTED:
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NOT_IMPLEMENTED";
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NULL_POINTER:
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NULL_POINTER";
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_ABSENT_INFORMATION:
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "ABSENT_INFORMATION";
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_EVENT_TYPE:
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_EVENT_TYPE";
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_ILLEGAL_ARGUMENT:
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "ILLEGAL_ARGUMENT";
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_OUT_OF_MEMORY:
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "OUT_OF_MEMORY";
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_ACCESS_DENIED:
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "ACCESS_DENIED";
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_VM_DEAD:
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "VM_DEAD";
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INTERNAL:
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INTERNAL";
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_UNATTACHED_THREAD:
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "UNATTACHED_THREAD";
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_TAG:
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_TAG";
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_ALREADY_INVOKING:
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "ALREADY_INVOKING";
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_INDEX:
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_INDEX";
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_LENGTH:
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_LENGTH";
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_STRING:
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_STRING";
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_CLASS_LOADER:
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_CLASS_LOADER";
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_ARRAY:
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_ARRAY";
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_TRANSPORT_LOAD:
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "TRANSPORT_LOAD";
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_TRANSPORT_INIT:
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "TRANSPORT_INIT";
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_NATIVE_METHOD:
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "NATIVE_METHOD";
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case ERR_INVALID_COUNT:
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "INVALID_COUNT";
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return "?UNKNOWN?";
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the EventKind.
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpEventKindStr(enum JdwpEventKind kind)
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (kind) {
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_SINGLE_STEP:        return "SINGLE_STEP";
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_BREAKPOINT:         return "BREAKPOINT";
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_FRAME_POP:          return "FRAME_POP";
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_EXCEPTION:          return "EXCEPTION";
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_USER_DEFINED:       return "USER_DEFINED";
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_THREAD_START:       return "THREAD_START";
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*case EK_THREAD_END:         return "THREAD_END";*/
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_CLASS_PREPARE:      return "CLASS_PREPARE";
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_CLASS_UNLOAD:       return "CLASS_UNLOAD";
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_CLASS_LOAD:         return "CLASS_LOAD";
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_FIELD_ACCESS:       return "FIELD_ACCESS";
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_FIELD_MODIFICATION: return "FIELD_MODIFICATION";
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_EXCEPTION_CATCH:    return "EXCEPTION_CATCH";
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_METHOD_ENTRY:       return "METHOD_ENTRY";
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_METHOD_EXIT:        return "METHOD_EXIT";
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_VM_INIT:            return "VM_INIT";
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_VM_DEATH:           return "VM_DEATH";
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_VM_DISCONNECTED:    return "VM_DISCONNECTED";
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*case EK_VM_START:           return "VM_START";*/
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case EK_THREAD_DEATH:       return "THREAD_DEATH";
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the StepDepth.
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpStepDepthStr(enum JdwpStepDepth depth)
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (depth) {
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_INTO:               return "INTO";
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_OVER:               return "OVER";
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_OUT:                return "OUT";
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the StepSize.
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpStepSizeStr(enum JdwpStepSize size)
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (size) {
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SS_MIN:                return "MIN";
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SS_LINE:               return "LINE";
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the SuspendPolicy.
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpSuspendPolicyStr(enum JdwpSuspendPolicy policy)
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (policy) {
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_NONE:               return "NONE";
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_EVENT_THREAD:       return "EVENT_THREAD";
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_ALL:                return "ALL";
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the SuspendStatus.
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpSuspendStatusStr(enum JdwpSuspendStatus status)
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (status) {
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case 0:                         return "Not SUSPENDED";
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SUSPEND_STATUS_SUSPENDED:  return "SUSPENDED";
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                        return "?UNKNOWN?";
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the ThreadStatus.
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectconst char* dvmJdwpThreadStatusStr(enum JdwpThreadStatus status)
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (status) {
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_ZOMBIE:             return "ZOMBIE";
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_RUNNING:            return "RUNNING";
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_SLEEPING:           return "SLEEPING";
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_MONITOR:            return "MONITOR";
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_WAIT:               return "WAIT";
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project};
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
241