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 */
26d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpErrorStr(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 */
149d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpEventKindStr(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/*
1770970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden * Return a string for the ModKind.
1780970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden */
179d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpModKindStr(JdwpModKind kind)
1800970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden{
1810970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    switch (kind) {
1820970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_COUNT:              return "COUNT";
1830970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_CONDITIONAL:        return "CONDITIONAL";
1840970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_THREAD_ONLY:        return "THREAD_ONLY";
1850970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_CLASS_ONLY:         return "CLASS_ONLY";
1860970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_CLASS_MATCH:        return "CLASS_MATCH";
1870970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_CLASS_EXCLUDE:      return "CLASS_EXCLUDE";
1880970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_LOCATION_ONLY:      return "LOCATION_ONLY";
1890970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_EXCEPTION_ONLY:     return "EXCEPTION_ONLY";
1900970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_FIELD_ONLY:         return "FIELD_ONLY";
1910970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_STEP:               return "STEP";
1920970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    case MK_INSTANCE_ONLY:      return "INSTANCE_ONLY";
1930970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    default:                    return "?UNKNOWN?";
1940970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden    }
1950970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden}
1960970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden
1970970976b0e980be00424f93a69c2bc13ca3131f3Andy McFadden/*
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the StepDepth.
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
200d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpStepDepthStr(JdwpStepDepth depth)
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (depth) {
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_INTO:               return "INTO";
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_OVER:               return "OVER";
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SD_OUT:                return "OUT";
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the StepSize.
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
213d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpStepSizeStr(JdwpStepSize size)
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (size) {
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SS_MIN:                return "MIN";
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SS_LINE:               return "LINE";
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the SuspendPolicy.
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
225d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpSuspendPolicyStr(JdwpSuspendPolicy policy)
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (policy) {
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_NONE:               return "NONE";
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_EVENT_THREAD:       return "EVENT_THREAD";
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case SP_ALL:                return "ALL";
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the SuspendStatus.
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
238d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpSuspendStatusStr(JdwpSuspendStatus status)
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (status) {
2417a921948c597d72a6db9ec6f3a0f1fbdfd3e49c8Doug Kwan    case SUSPEND_STATUS_NOT_SUSPENDED: return "Not SUSPENDED";
2427a921948c597d72a6db9ec6f3a0f1fbdfd3e49c8Doug Kwan    case SUSPEND_STATUS_SUSPENDED:     return "SUSPENDED";
2437a921948c597d72a6db9ec6f3a0f1fbdfd3e49c8Doug Kwan    default:                           return "?UNKNOWN?";
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Return a string for the ThreadStatus.
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
250d862faa2ceae186da5518607505eb942d634ced9Carl Shapiroconst char* dvmJdwpThreadStatusStr(JdwpThreadStatus status)
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    switch (status) {
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_ZOMBIE:             return "ZOMBIE";
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_RUNNING:            return "RUNNING";
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_SLEEPING:           return "SLEEPING";
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_MONITOR:            return "MONITOR";
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    case TS_WAIT:               return "WAIT";
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    default:                    return "?UNKNOWN?";
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project};
261