1 | /*
|
---|
2 | * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
|
---|
3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
---|
4 | *
|
---|
5 | * This code is free software; you can redistribute it and/or modify it
|
---|
6 | * under the terms of the GNU General Public License version 2 only, as
|
---|
7 | * published by the Free Software Foundation. Oracle designates this
|
---|
8 | * particular file as subject to the "Classpath" exception as provided
|
---|
9 | * by Oracle in the LICENSE file that accompanied this code.
|
---|
10 | *
|
---|
11 | * This code is distributed in the hope that it will be useful, but WITHOUT
|
---|
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
---|
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
---|
14 | * version 2 for more details (a copy is included in the LICENSE file that
|
---|
15 | * accompanied this code).
|
---|
16 | *
|
---|
17 | * You should have received a copy of the GNU General Public License version
|
---|
18 | * 2 along with this work; if not, write to the Free Software Foundation,
|
---|
19 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
20 | *
|
---|
21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
---|
22 | * or visit www.oracle.com if you need additional information or have any
|
---|
23 | * questions.
|
---|
24 | */
|
---|
25 |
|
---|
26 | JDWP "Java(tm) Debug Wire Protocol"
|
---|
27 | (CommandSet VirtualMachine=1
|
---|
28 | (Command Version=1
|
---|
29 | "Returns the JDWP version implemented by the target VM. "
|
---|
30 | "The version string format is implementation dependent. "
|
---|
31 | (Out
|
---|
32 | )
|
---|
33 | (Reply
|
---|
34 | (string description "Text information on the VM version")
|
---|
35 | (int jdwpMajor "Major JDWP Version number")
|
---|
36 | (int jdwpMinor "Minor JDWP Version number")
|
---|
37 | (string vmVersion "Target VM JRE version, as in the java.version property")
|
---|
38 | (string vmName "Target VM name, as in the java.vm.name property")
|
---|
39 | )
|
---|
40 | (ErrorSet
|
---|
41 | (Error VM_DEAD)
|
---|
42 | )
|
---|
43 | )
|
---|
44 | (Command ClassesBySignature=2
|
---|
45 | "Returns reference types for all the classes loaded by the target VM "
|
---|
46 | "which match the given signature. "
|
---|
47 | "Multple reference types will be returned if two or more class "
|
---|
48 | "loaders have loaded a class of the same name. "
|
---|
49 | "The search is confined to loaded classes only; no attempt is made "
|
---|
50 | "to load a class of the given signature. "
|
---|
51 | (Out
|
---|
52 | (string signature "JNI signature of the class to find "
|
---|
53 | "(for example, \"Ljava/lang/String;\"). "
|
---|
54 | )
|
---|
55 | )
|
---|
56 | (Reply
|
---|
57 | (Repeat classes "Number of reference types that follow."
|
---|
58 | (Group ClassInfo
|
---|
59 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
60 | "of following reference type. ")
|
---|
61 | (referenceTypeID typeID "Matching loaded reference type")
|
---|
62 | (int status "The current class "
|
---|
63 | "<a href=\"#JDWP_ClassStatus\">status.</a> ")
|
---|
64 | )
|
---|
65 | )
|
---|
66 | )
|
---|
67 | (ErrorSet
|
---|
68 | (Error VM_DEAD)
|
---|
69 | )
|
---|
70 | )
|
---|
71 | (Command AllClasses=3
|
---|
72 | "Returns reference types for all classes currently loaded by the "
|
---|
73 | "target VM."
|
---|
74 | (Out
|
---|
75 | )
|
---|
76 | (Reply
|
---|
77 | (Repeat classes "Number of reference types that follow."
|
---|
78 | (Group ClassInfo
|
---|
79 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
80 | "of following reference type. ")
|
---|
81 | (referenceTypeID typeID "Loaded reference type")
|
---|
82 | (string signature
|
---|
83 | "The JNI signature of the loaded reference type")
|
---|
84 | (int status "The current class "
|
---|
85 | "<a href=\"#JDWP_ClassStatus\">status.</a> ")
|
---|
86 | )
|
---|
87 | )
|
---|
88 | )
|
---|
89 | (ErrorSet
|
---|
90 | (Error VM_DEAD)
|
---|
91 | )
|
---|
92 | )
|
---|
93 | (Command AllThreads=4
|
---|
94 | "Returns all threads currently running in the target VM . "
|
---|
95 | "The returned list contains threads created through "
|
---|
96 | "java.lang.Thread, all native threads attached to "
|
---|
97 | "the target VM through JNI, and system threads created "
|
---|
98 | "by the target VM. Threads that have not yet been started "
|
---|
99 | "and threads that have completed their execution are not "
|
---|
100 | "included in the returned list. "
|
---|
101 | (Out
|
---|
102 | )
|
---|
103 | (Reply
|
---|
104 | (Repeat threads "Number of threads that follow."
|
---|
105 | (threadObject thread "A running thread")
|
---|
106 | )
|
---|
107 | )
|
---|
108 | (ErrorSet
|
---|
109 | (Error VM_DEAD)
|
---|
110 | )
|
---|
111 | )
|
---|
112 | (Command TopLevelThreadGroups=5
|
---|
113 | "Returns all thread groups that do not have a parent. This command "
|
---|
114 | "may be used as the first step in building a tree (or trees) of the "
|
---|
115 | "existing thread groups."
|
---|
116 | (Out
|
---|
117 | )
|
---|
118 | (Reply
|
---|
119 | (Repeat groups "Number of thread groups that follow."
|
---|
120 | (threadGroupObject group "A top level thread group")
|
---|
121 | )
|
---|
122 | )
|
---|
123 | (ErrorSet
|
---|
124 | (Error VM_DEAD)
|
---|
125 | )
|
---|
126 | )
|
---|
127 | (Command Dispose=6
|
---|
128 | "Invalidates this virtual machine mirror. "
|
---|
129 | "The communication channel to the target VM is closed, and "
|
---|
130 | "the target VM prepares to accept another subsequent connection "
|
---|
131 | "from this debugger or another debugger, including the "
|
---|
132 | "following tasks: "
|
---|
133 | "<ul>"
|
---|
134 | "<li>All event requests are cancelled. "
|
---|
135 | "<li>All threads suspended by the thread-level "
|
---|
136 | "<a href=\"#JDWP_ThreadReference_Resume\">resume</a> command "
|
---|
137 | "or the VM-level "
|
---|
138 | "<a href=\"#JDWP_VirtualMachine_Resume\">resume</a> command "
|
---|
139 | "are resumed as many times as necessary for them to run. "
|
---|
140 | "<li>Garbage collection is re-enabled in all cases where it was "
|
---|
141 | "<a href=\"#JDWP_ObjectReference_DisableCollection\">disabled</a> "
|
---|
142 | "</ul>"
|
---|
143 | "Any current method invocations executing in the target VM "
|
---|
144 | "are continued after the disconnection. Upon completion of any such "
|
---|
145 | "method invocation, the invoking thread continues from the "
|
---|
146 | "location where it was originally stopped. "
|
---|
147 | "<p>"
|
---|
148 | "Resources originating in "
|
---|
149 | "this VirtualMachine (ObjectReferences, ReferenceTypes, etc.) "
|
---|
150 | "will become invalid. "
|
---|
151 | (Out
|
---|
152 | )
|
---|
153 | (Reply
|
---|
154 | )
|
---|
155 | (ErrorSet
|
---|
156 | )
|
---|
157 | )
|
---|
158 | (Command IDSizes=7
|
---|
159 | "Returns the sizes of variably-sized data types in the target VM."
|
---|
160 | "The returned values indicate the number of bytes used by the "
|
---|
161 | "identifiers in command and reply packets."
|
---|
162 | (Out
|
---|
163 | )
|
---|
164 | (Reply
|
---|
165 | (int fieldIDSize "fieldID size in bytes ")
|
---|
166 | (int methodIDSize "methodID size in bytes ")
|
---|
167 | (int objectIDSize "objectID size in bytes ")
|
---|
168 | (int referenceTypeIDSize "referenceTypeID size in bytes ")
|
---|
169 | (int frameIDSize "frameID size in bytes ")
|
---|
170 | )
|
---|
171 | (ErrorSet
|
---|
172 | (Error VM_DEAD)
|
---|
173 | )
|
---|
174 | )
|
---|
175 | (Command Suspend=8
|
---|
176 | "Suspends the execution of the application running in the target "
|
---|
177 | "VM. All Java threads currently running will be suspended. "
|
---|
178 | "<p>"
|
---|
179 | "Unlike java.lang.Thread.suspend, "
|
---|
180 | "suspends of both the virtual machine and individual threads are "
|
---|
181 | "counted. Before a thread will run again, it must be resumed through "
|
---|
182 | "the <a href=\"#JDWP_VirtualMachine_Resume\">VM-level resume</a> command "
|
---|
183 | "or the <a href=\"#JDWP_ThreadReference_Resume\">thread-level resume</a> command "
|
---|
184 | "the same number of times it has been suspended. "
|
---|
185 | (Out
|
---|
186 | )
|
---|
187 | (Reply
|
---|
188 | )
|
---|
189 | (ErrorSet
|
---|
190 | (Error VM_DEAD)
|
---|
191 | )
|
---|
192 | )
|
---|
193 | (Command Resume=9
|
---|
194 | "Resumes execution of the application after the suspend "
|
---|
195 | "command or an event has stopped it. "
|
---|
196 | "Suspensions of the Virtual Machine and individual threads are "
|
---|
197 | "counted. If a particular thread is suspended n times, it must "
|
---|
198 | "resumed n times before it will continue. "
|
---|
199 | (Out
|
---|
200 | )
|
---|
201 | (Reply
|
---|
202 | )
|
---|
203 | (ErrorSet
|
---|
204 | )
|
---|
205 | )
|
---|
206 | (Command Exit=10
|
---|
207 | "Terminates the target VM with the given exit code. "
|
---|
208 | "On some platforms, the exit code might be truncated, for "
|
---|
209 | "example, to the low order 8 bits. "
|
---|
210 | "All ids previously returned from the target VM become invalid. "
|
---|
211 | "Threads running in the VM are abruptly terminated. "
|
---|
212 | "A thread death exception is not thrown and "
|
---|
213 | "finally blocks are not run."
|
---|
214 | (Out
|
---|
215 | (int exitCode "the exit code")
|
---|
216 | )
|
---|
217 | (Reply
|
---|
218 | )
|
---|
219 | (ErrorSet
|
---|
220 | )
|
---|
221 | )
|
---|
222 | (Command CreateString=11
|
---|
223 | "Creates a new string object in the target VM and returns "
|
---|
224 | "its id. "
|
---|
225 | (Out
|
---|
226 | (string utf "UTF-8 characters to use in the created string. ")
|
---|
227 | )
|
---|
228 | (Reply
|
---|
229 | (stringObject stringObject
|
---|
230 | "Created string (instance of java.lang.String) ")
|
---|
231 | )
|
---|
232 | (ErrorSet
|
---|
233 | (Error VM_DEAD)
|
---|
234 | )
|
---|
235 | )
|
---|
236 | (Command Capabilities=12
|
---|
237 | "Retrieve this VM's capabilities. The capabilities are returned "
|
---|
238 | "as booleans, each indicating the presence or absence of a "
|
---|
239 | "capability. The commands associated with each capability will "
|
---|
240 | "return the NOT_IMPLEMENTED error if the cabability is not "
|
---|
241 | "available."
|
---|
242 | (Out
|
---|
243 | )
|
---|
244 | (Reply
|
---|
245 | (boolean canWatchFieldModification
|
---|
246 | "Can the VM watch field modification, and therefore "
|
---|
247 | "can it send the Modification Watchpoint Event?")
|
---|
248 | (boolean canWatchFieldAccess
|
---|
249 | "Can the VM watch field access, and therefore "
|
---|
250 | "can it send the Access Watchpoint Event?")
|
---|
251 | (boolean canGetBytecodes
|
---|
252 | "Can the VM get the bytecodes of a given method? ")
|
---|
253 | (boolean canGetSyntheticAttribute
|
---|
254 | "Can the VM determine whether a field or method is "
|
---|
255 | "synthetic? (that is, can the VM determine if the "
|
---|
256 | "method or the field was invented by the compiler?) ")
|
---|
257 | (boolean canGetOwnedMonitorInfo
|
---|
258 | "Can the VM get the owned monitors infornation for "
|
---|
259 | "a thread?")
|
---|
260 | (boolean canGetCurrentContendedMonitor
|
---|
261 | "Can the VM get the current contended monitor of a thread?")
|
---|
262 | (boolean canGetMonitorInfo
|
---|
263 | "Can the VM get the monitor information for a given object? ")
|
---|
264 | )
|
---|
265 | (ErrorSet
|
---|
266 | (Error VM_DEAD)
|
---|
267 | )
|
---|
268 | )
|
---|
269 | (Command ClassPaths=13
|
---|
270 | "Retrieve the classpath and bootclasspath of the target VM. "
|
---|
271 | "If the classpath is not defined, returns an empty list. If the "
|
---|
272 | "bootclasspath is not defined returns an empty list."
|
---|
273 | (Out
|
---|
274 | )
|
---|
275 | (Reply
|
---|
276 | (string baseDir "Base directory used to resolve relative "
|
---|
277 | "paths in either of the following lists.")
|
---|
278 | (Repeat classpaths "Number of paths in classpath."
|
---|
279 | (string path "One component of classpath") )
|
---|
280 | (Repeat bootclasspaths "Number of paths in bootclasspath."
|
---|
281 | (string path "One component of bootclasspath") )
|
---|
282 | )
|
---|
283 | (ErrorSet
|
---|
284 | (Error VM_DEAD)
|
---|
285 | )
|
---|
286 | )
|
---|
287 | (Command DisposeObjects=14
|
---|
288 | "Releases a list of object IDs. For each object in the list, the "
|
---|
289 | "following applies. "
|
---|
290 | "The count of references held by the back-end (the reference "
|
---|
291 | "count) will be decremented by refCnt. "
|
---|
292 | "If thereafter the reference count is less than "
|
---|
293 | "or equal to zero, the ID is freed. "
|
---|
294 | "Any back-end resources associated with the freed ID may "
|
---|
295 | "be freed, and if garbage collection was "
|
---|
296 | "disabled for the object, it will be re-enabled. "
|
---|
297 | "The sender of this command "
|
---|
298 | "promises that no further commands will be sent "
|
---|
299 | "referencing a freed ID.
|
---|
300 | "<p>"
|
---|
301 | "Use of this command is not required. If it is not sent, "
|
---|
302 | "resources associated with each ID will be freed by the back-end "
|
---|
303 | "at some time after the corresponding object is garbage collected. "
|
---|
304 | "It is most useful to use this command to reduce the load on the "
|
---|
305 | "back-end if a very large number of "
|
---|
306 | "objects has been retrieved from the back-end (a large array, "
|
---|
307 | "for example) but may not be garbage collected any time soon. "
|
---|
308 | "<p>"
|
---|
309 | "IDs may be re-used by the back-end after they "
|
---|
310 | "have been freed with this command."
|
---|
311 | "This description assumes reference counting, "
|
---|
312 | "a back-end may use any implementation which operates "
|
---|
313 | "equivalently. "
|
---|
314 | (Out
|
---|
315 | (Repeat requests "Number of object dispose requests that follow"
|
---|
316 | (Group Request
|
---|
317 | (object object "The object ID")
|
---|
318 | (int refCnt "The number of times this object ID has been "
|
---|
319 | "part of a packet received from the back-end. "
|
---|
320 | "An accurate count prevents the object ID "
|
---|
321 | "from being freed on the back-end if "
|
---|
322 | "it is part of an incoming packet, not yet "
|
---|
323 | "handled by the front-end.")
|
---|
324 | )
|
---|
325 | )
|
---|
326 | )
|
---|
327 | (Reply
|
---|
328 | )
|
---|
329 | (ErrorSet
|
---|
330 | )
|
---|
331 | )
|
---|
332 | (Command HoldEvents=15
|
---|
333 | "Tells the target VM to stop sending events. Events are not discarded; "
|
---|
334 | "they are held until a subsequent ReleaseEvents command is sent. "
|
---|
335 | "This command is useful to control the number of events sent "
|
---|
336 | "to the debugger VM in situations where very large numbers of events "
|
---|
337 | "are generated. "
|
---|
338 | "While events are held by the debugger back-end, application "
|
---|
339 | "execution may be frozen by the debugger back-end to prevent "
|
---|
340 | "buffer overflows on the back end.
|
---|
341 | "Responses to commands are never held and are not affected by this
|
---|
342 | "command. If events are already being held, this command is "
|
---|
343 | "ignored."
|
---|
344 | (Out
|
---|
345 | )
|
---|
346 | (Reply
|
---|
347 | )
|
---|
348 | (ErrorSet
|
---|
349 | )
|
---|
350 | )
|
---|
351 | (Command ReleaseEvents=16
|
---|
352 | "Tells the target VM to continue sending events. This command is "
|
---|
353 | "used to restore normal activity after a HoldEvents command. If "
|
---|
354 | "there is no current HoldEvents command in effect, this command is "
|
---|
355 | "ignored."
|
---|
356 | (Out
|
---|
357 | )
|
---|
358 | (Reply
|
---|
359 | )
|
---|
360 | (ErrorSet
|
---|
361 | )
|
---|
362 | )
|
---|
363 | (Command CapabilitiesNew=17
|
---|
364 | "Retrieve all of this VM's capabilities. The capabilities are returned "
|
---|
365 | "as booleans, each indicating the presence or absence of a "
|
---|
366 | "capability. The commands associated with each capability will "
|
---|
367 | "return the NOT_IMPLEMENTED error if the cabability is not "
|
---|
368 | "available."
|
---|
369 | "Since JDWP version 1.4."
|
---|
370 | (Out
|
---|
371 | )
|
---|
372 | (Reply
|
---|
373 | (boolean canWatchFieldModification
|
---|
374 | "Can the VM watch field modification, and therefore "
|
---|
375 | "can it send the Modification Watchpoint Event?")
|
---|
376 | (boolean canWatchFieldAccess
|
---|
377 | "Can the VM watch field access, and therefore "
|
---|
378 | "can it send the Access Watchpoint Event?")
|
---|
379 | (boolean canGetBytecodes
|
---|
380 | "Can the VM get the bytecodes of a given method? ")
|
---|
381 | (boolean canGetSyntheticAttribute
|
---|
382 | "Can the VM determine whether a field or method is "
|
---|
383 | "synthetic? (that is, can the VM determine if the "
|
---|
384 | "method or the field was invented by the compiler?) ")
|
---|
385 | (boolean canGetOwnedMonitorInfo
|
---|
386 | "Can the VM get the owned monitors infornation for "
|
---|
387 | "a thread?")
|
---|
388 | (boolean canGetCurrentContendedMonitor
|
---|
389 | "Can the VM get the current contended monitor of a thread?")
|
---|
390 | (boolean canGetMonitorInfo
|
---|
391 | "Can the VM get the monitor information for a given object? ")
|
---|
392 | (boolean canRedefineClasses
|
---|
393 | "Can the VM redefine classes?")
|
---|
394 | (boolean canAddMethod
|
---|
395 | "Can the VM add methods when redefining "
|
---|
396 | "classes?")
|
---|
397 | (boolean canUnrestrictedlyRedefineClasses
|
---|
398 | "Can the VM redefine classes"
|
---|
399 | "in arbitrary ways?")
|
---|
400 | (boolean canPopFrames
|
---|
401 | "Can the VM pop stack frames?")
|
---|
402 | (boolean canUseInstanceFilters
|
---|
403 | "Can the VM filter events by specific object?")
|
---|
404 | (boolean canGetSourceDebugExtension
|
---|
405 | "Can the VM get the source debug extension?")
|
---|
406 | (boolean canRequestVMDeathEvent
|
---|
407 | "Can the VM request VM death events?")
|
---|
408 | (boolean canSetDefaultStratum
|
---|
409 | "Can the VM set a default stratum?")
|
---|
410 | (boolean canGetInstanceInfo
|
---|
411 | "Can the VM return instances, counts of instances of classes "
|
---|
412 | "and referring objects?")
|
---|
413 | (boolean canRequestMonitorEvents
|
---|
414 | "Can the VM request monitor events?")
|
---|
415 | (boolean canGetMonitorFrameInfo
|
---|
416 | "Can the VM get monitors with frame depth info?")
|
---|
417 | (boolean canUseSourceNameFilters
|
---|
418 | "Can the VM filter class prepare events by source name?")
|
---|
419 | (boolean canGetConstantPool
|
---|
420 | "Can the VM return the constant pool information?")
|
---|
421 | (boolean canForceEarlyReturn
|
---|
422 | "Can the VM force early return from a method?")
|
---|
423 | (boolean reserved22
|
---|
424 | "Reserved for future capability")
|
---|
425 | (boolean reserved23
|
---|
426 | "Reserved for future capability")
|
---|
427 | (boolean reserved24
|
---|
428 | "Reserved for future capability")
|
---|
429 | (boolean reserved25
|
---|
430 | "Reserved for future capability")
|
---|
431 | (boolean reserved26
|
---|
432 | "Reserved for future capability")
|
---|
433 | (boolean reserved27
|
---|
434 | "Reserved for future capability")
|
---|
435 | (boolean reserved28
|
---|
436 | "Reserved for future capability")
|
---|
437 | (boolean reserved29
|
---|
438 | "Reserved for future capability")
|
---|
439 | (boolean reserved30
|
---|
440 | "Reserved for future capability")
|
---|
441 | (boolean reserved31
|
---|
442 | "Reserved for future capability")
|
---|
443 | (boolean reserved32
|
---|
444 | "Reserved for future capability")
|
---|
445 | )
|
---|
446 | (ErrorSet
|
---|
447 | (Error VM_DEAD)
|
---|
448 | )
|
---|
449 | )
|
---|
450 | (Command RedefineClasses=18
|
---|
451 | "Installs new class definitions. "
|
---|
452 | "If there are active stack frames in methods of the redefined classes in the "
|
---|
453 | "target VM then those active frames continue to run the bytecodes of the "
|
---|
454 | "original method. These methods are considered obsolete - see "
|
---|
455 | "<a href=\"#JDWP_Method_IsObsolete\">IsObsolete</a>. The methods in the "
|
---|
456 | "redefined classes will be used for new invokes in the target VM. "
|
---|
457 | "The original method ID refers to the redefined method. "
|
---|
458 | "All breakpoints in the redefined classes are cleared."
|
---|
459 | "If resetting of stack frames is desired, the "
|
---|
460 | "<a href=\"#JDWP_StackFrame_PopFrames\">PopFrames</a> command can be used "
|
---|
461 | "to pop frames with obsolete methods."
|
---|
462 | "<p>"
|
---|
463 | "Requires canRedefineClasses capability - see "
|
---|
464 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
|
---|
465 | "In addition to the canRedefineClasses capability, the target VM must "
|
---|
466 | "have the canAddMethod capability to add methods when redefining classes, "
|
---|
467 | "or the canUnrestrictedlyRedefineClasses to redefine classes in arbitrary "
|
---|
468 | "ways."
|
---|
469 | (Out
|
---|
470 | (Repeat classes "Number of reference types that follow."
|
---|
471 | (Group ClassDef
|
---|
472 | (referenceType refType "The reference type.")
|
---|
473 | (Repeat classfile "Number of bytes defining class (below)"
|
---|
474 | (byte classbyte "byte in JVM class file "
|
---|
475 | "format.")
|
---|
476 | )
|
---|
477 | )
|
---|
478 | )
|
---|
479 | )
|
---|
480 | (Reply
|
---|
481 | )
|
---|
482 | (ErrorSet
|
---|
483 | (Error INVALID_CLASS "One of the refTypes is not the ID of a reference "
|
---|
484 | "type.")
|
---|
485 | (Error INVALID_OBJECT "One of the refTypes is not a known ID.")
|
---|
486 | (Error UNSUPPORTED_VERSION)
|
---|
487 | (Error INVALID_CLASS_FORMAT)
|
---|
488 | (Error CIRCULAR_CLASS_DEFINITION)
|
---|
489 | (Error FAILS_VERIFICATION)
|
---|
490 | (Error NAMES_DONT_MATCH)
|
---|
491 | (Error NOT_IMPLEMENTED "No aspect of this functionality is implemented "
|
---|
492 | "(CapabilitiesNew.canRedefineClasses is false)")
|
---|
493 | (Error ADD_METHOD_NOT_IMPLEMENTED)
|
---|
494 | (Error SCHEMA_CHANGE_NOT_IMPLEMENTED)
|
---|
495 | (Error HIERARCHY_CHANGE_NOT_IMPLEMENTED)
|
---|
496 | (Error DELETE_METHOD_NOT_IMPLEMENTED)
|
---|
497 | (Error CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED)
|
---|
498 | (Error METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED)
|
---|
499 | (Error VM_DEAD)
|
---|
500 | )
|
---|
501 | )
|
---|
502 | (Command SetDefaultStratum=19
|
---|
503 | "Set the default stratum. Requires canSetDefaultStratum capability - see "
|
---|
504 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
505 | (Out
|
---|
506 | (string stratumID "default stratum, or empty string to use "
|
---|
507 | "reference type default.")
|
---|
508 | )
|
---|
509 | (Reply
|
---|
510 | )
|
---|
511 | (ErrorSet
|
---|
512 | (Error NOT_IMPLEMENTED)
|
---|
513 | (Error VM_DEAD)
|
---|
514 | )
|
---|
515 | )
|
---|
516 | (Command AllClassesWithGeneric=20
|
---|
517 | "Returns reference types for all classes currently loaded by the "
|
---|
518 | "target VM. "
|
---|
519 | "Both the JNI signature and the generic signature are "
|
---|
520 | "returned for each class. "
|
---|
521 | "Generic signatures are described in the signature attribute "
|
---|
522 | "section in the "
|
---|
523 | "<a href=\"http://java.sun.com/docs/books/vmspec\">
|
---|
524 | "Java Virtual Machine Specification, 3rd Edition.</a> "
|
---|
525 | "Since JDWP version 1.5."
|
---|
526 | (Out
|
---|
527 | )
|
---|
528 | (Reply
|
---|
529 | (Repeat classes "Number of reference types that follow."
|
---|
530 | (Group ClassInfo
|
---|
531 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
532 | "of following reference type. ")
|
---|
533 | (referenceTypeID typeID "Loaded reference type")
|
---|
534 | (string signature
|
---|
535 | "The JNI signature of the loaded reference type.")
|
---|
536 | (string genericSignature
|
---|
537 | "The generic signature of the loaded reference type "
|
---|
538 | "or an empty string if there is none.")
|
---|
539 | (int status "The current class "
|
---|
540 | "<a href=\"#JDWP_ClassStatus\">status.</a> ")
|
---|
541 | )
|
---|
542 | )
|
---|
543 | )
|
---|
544 | (ErrorSet
|
---|
545 | (Error VM_DEAD)
|
---|
546 | )
|
---|
547 | )
|
---|
548 |
|
---|
549 | (Command InstanceCounts=21
|
---|
550 | "Returns the number of instances of each reference type in the input list. "
|
---|
551 | "Only instances that are reachable for the purposes of "
|
---|
552 | "garbage collection are counted. If a reference type is invalid, "
|
---|
553 | "eg. it has been unloaded, zero is returned for its instance count."
|
---|
554 | "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
|
---|
555 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
556 | (Out
|
---|
557 | (Repeat refTypesCount "Number of reference types that follow. Must be non-negative."
|
---|
558 | (referenceType refType "A reference type ID.")
|
---|
559 | )
|
---|
560 | )
|
---|
561 | (Reply
|
---|
562 | (Repeat counts "The number of counts that follow."
|
---|
563 | (long instanceCount "The number of instances for the corresponding reference type "
|
---|
564 | "in 'Out Data'.")
|
---|
565 | )
|
---|
566 | )
|
---|
567 | (ErrorSet
|
---|
568 | (Error ILLEGAL_ARGUMENT "refTypesCount is less than zero.")
|
---|
569 | (Error NOT_IMPLEMENTED)
|
---|
570 | (Error VM_DEAD)
|
---|
571 | )
|
---|
572 | )
|
---|
573 | )
|
---|
574 |
|
---|
575 | (CommandSet ReferenceType=2
|
---|
576 | (Command Signature=1
|
---|
577 | "Returns the JNI signature of a reference type. "
|
---|
578 | "JNI signature formats are described in the "
|
---|
579 | "<a href=\"http://java.sun.com/products/jdk/1.2/docs/guide/jni/index.html\">Java Native Inteface Specification</a>"
|
---|
580 | "<p>
|
---|
581 | "For primitive classes "
|
---|
582 | "the returned signature is the signature of the corresponding primitive "
|
---|
583 | "type; for example, \"I\" is returned as the signature of the class "
|
---|
584 | "represented by java.lang.Integer.TYPE."
|
---|
585 | (Out
|
---|
586 | (referenceType refType "The reference type ID.")
|
---|
587 | )
|
---|
588 | (Reply
|
---|
589 | (string signature
|
---|
590 | "The JNI signature for the reference type.")
|
---|
591 | )
|
---|
592 | (ErrorSet
|
---|
593 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
594 | "type.")
|
---|
595 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
596 | (Error VM_DEAD)
|
---|
597 | )
|
---|
598 | )
|
---|
599 | (Command ClassLoader=2
|
---|
600 | "Returns the instance of java.lang.ClassLoader which loaded "
|
---|
601 | "a given reference type. If the reference type was loaded by the "
|
---|
602 | "system class loader, the returned object ID is null."
|
---|
603 | (Out
|
---|
604 | (referenceType refType "The reference type ID.")
|
---|
605 | )
|
---|
606 | (Reply
|
---|
607 | (classLoaderObject classLoader "The class loader for the reference type. ")
|
---|
608 | )
|
---|
609 | (ErrorSet
|
---|
610 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
611 | "type.")
|
---|
612 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
613 | (Error VM_DEAD)
|
---|
614 | )
|
---|
615 | )
|
---|
616 | (Command Modifiers=3
|
---|
617 | "Returns the modifiers (also known as access flags) for a reference type. "
|
---|
618 | "The returned bit mask contains information on the declaration "
|
---|
619 | "of the reference type. If the reference type is an array or "
|
---|
620 | "a primitive class (for example, java.lang.Integer.TYPE), the "
|
---|
621 | "value of the returned bit mask is undefined."
|
---|
622 | (Out
|
---|
623 | (referenceType refType "The reference type ID.")
|
---|
624 | )
|
---|
625 | (Reply
|
---|
626 | (int modBits "Modifier bits as defined in the "
|
---|
627 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>")
|
---|
628 | )
|
---|
629 | (ErrorSet
|
---|
630 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
631 | "type.")
|
---|
632 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
633 | (Error VM_DEAD)
|
---|
634 | )
|
---|
635 | )
|
---|
636 | (Command Fields=4
|
---|
637 | "Returns information for each field in a reference type. "
|
---|
638 | "Inherited fields are not included. "
|
---|
639 | "The field list will include any synthetic fields created "
|
---|
640 | "by the compiler. "
|
---|
641 | "Fields are returned in the order they occur in the class file."
|
---|
642 | (Out
|
---|
643 | (referenceType refType "The reference type ID.")
|
---|
644 | )
|
---|
645 | (Reply
|
---|
646 | (Repeat declared "Number of declared fields."
|
---|
647 | (Group FieldInfo
|
---|
648 | (field fieldID "Field ID.")
|
---|
649 | (string name "Name of field.")
|
---|
650 | (string signature "JNI Signature of field.")
|
---|
651 | (int modBits "The modifier bit flags (also known as access flags) "
|
---|
652 | "which provide additional information on the "
|
---|
653 | "field declaration. Individual flag values are "
|
---|
654 | "defined in the "
|
---|
655 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
|
---|
656 | "In addition, The <code>0xf0000000</code> bit identifies "
|
---|
657 | "the field as synthetic, if the synthetic attribute "
|
---|
658 | "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
|
---|
659 | )
|
---|
660 | )
|
---|
661 | )
|
---|
662 | (ErrorSet
|
---|
663 | (Error CLASS_NOT_PREPARED)
|
---|
664 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
665 | "type.")
|
---|
666 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
667 | (Error VM_DEAD)
|
---|
668 | )
|
---|
669 | )
|
---|
670 | (Command Methods=5
|
---|
671 | "Returns information for each method in a reference type. "
|
---|
672 | "Inherited methods are not included. The list of methods will "
|
---|
673 | "include constructors (identified with the name \"<init>\"), "
|
---|
674 | "the initialization method (identified with the name \"<clinit>\") "
|
---|
675 | "if present, and any synthetic methods created by the compiler. "
|
---|
676 | "Methods are returned in the order they occur in the class file."
|
---|
677 | (Out
|
---|
678 | (referenceType refType "The reference type ID.")
|
---|
679 | )
|
---|
680 | (Reply
|
---|
681 | (Repeat declared "Number of declared methods."
|
---|
682 | (Group MethodInfo
|
---|
683 | (method methodID "Method ID.")
|
---|
684 | (string name "Name of method.")
|
---|
685 | (string signature "JNI signature of method.")
|
---|
686 | (int modBits "The modifier bit flags (also known as access flags) "
|
---|
687 | "which provide additional information on the "
|
---|
688 | "method declaration. Individual flag values are "
|
---|
689 | "defined in the "
|
---|
690 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
|
---|
691 | "In addition, The <code>0xf0000000</code> bit identifies "
|
---|
692 | "the method as synthetic, if the synthetic attribute "
|
---|
693 | "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
|
---|
694 | )
|
---|
695 | )
|
---|
696 | )
|
---|
697 | (ErrorSet
|
---|
698 | (Error CLASS_NOT_PREPARED)
|
---|
699 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
700 | "type.")
|
---|
701 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
702 | (Error VM_DEAD)
|
---|
703 | )
|
---|
704 | )
|
---|
705 | (Command GetValues=6
|
---|
706 | "Returns the value of one or more static fields of the "
|
---|
707 | "reference type. Each field must be member of the reference type "
|
---|
708 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
709 | "Access control is not enforced; for example, the values of private "
|
---|
710 | "fields can be obtained."
|
---|
711 | (Out
|
---|
712 | (referenceType refType "The reference type ID.")
|
---|
713 | (Repeat fields "The number of values to get"
|
---|
714 | (Group Field
|
---|
715 | (field fieldID "A field to get")
|
---|
716 | )
|
---|
717 | )
|
---|
718 | )
|
---|
719 | (Reply
|
---|
720 | (Repeat values "The number of values returned, always equal to fields, "
|
---|
721 | "the number of values to get."
|
---|
722 | (value value "The field value")
|
---|
723 | )
|
---|
724 | )
|
---|
725 | (ErrorSet
|
---|
726 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
727 | "type.")
|
---|
728 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
729 | (Error INVALID_FIELDID)
|
---|
730 | (Error VM_DEAD)
|
---|
731 | )
|
---|
732 | )
|
---|
733 | (Command SourceFile=7
|
---|
734 | "Returns the name of source file in which a reference type was "
|
---|
735 | "declared. "
|
---|
736 | (Out
|
---|
737 | (referenceType refType "The reference type ID.")
|
---|
738 | )
|
---|
739 | (Reply
|
---|
740 | (string sourceFile "The source file name. No path information "
|
---|
741 | "for the file is included")
|
---|
742 | )
|
---|
743 | (ErrorSet
|
---|
744 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
745 | "type.")
|
---|
746 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
747 | (Error ABSENT_INFORMATION "The source file attribute is absent.")
|
---|
748 | (Error VM_DEAD)
|
---|
749 | )
|
---|
750 | )
|
---|
751 | (Command NestedTypes=8
|
---|
752 | "Returns the classes and interfaces directly nested within this type."
|
---|
753 | "Types further nested within those types are not included. "
|
---|
754 | (Out
|
---|
755 | (referenceType refType "The reference type ID.")
|
---|
756 | )
|
---|
757 | (Reply
|
---|
758 | (Repeat classes "The number of nested classes and interfaces"
|
---|
759 | (Group TypeInfo
|
---|
760 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
761 | "of following reference type. ")
|
---|
762 | (referenceTypeID typeID "The nested class or interface ID.")
|
---|
763 | )
|
---|
764 | )
|
---|
765 | )
|
---|
766 | (ErrorSet
|
---|
767 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
768 | "type.")
|
---|
769 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
770 | (Error VM_DEAD)
|
---|
771 | )
|
---|
772 | )
|
---|
773 | (Command Status=9
|
---|
774 | "Returns the current status of the reference type. The status "
|
---|
775 | "indicates the extent to which the reference type has been "
|
---|
776 | "initialized, as described in the "
|
---|
777 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/Concepts.doc.html#16491\">VM specification</a>. "
|
---|
778 | "If the class is linked the PREPARED and VERIFIED bits in the returned status bits "
|
---|
779 | "will be set. If the class is initialized the INITIALIZED bit in the returned "
|
---|
780 | "status bits will be set. If an error occured during initialization then the "
|
---|
781 | "ERROR bit in the returned status bits will be set. "
|
---|
782 | "The returned status bits are undefined for array types and for "
|
---|
783 | "primitive classes (such as java.lang.Integer.TYPE). "
|
---|
784 | (Out
|
---|
785 | (referenceType refType "The reference type ID.")
|
---|
786 | )
|
---|
787 | (Reply
|
---|
788 | (int status "<a href=\"#JDWP_ClassStatus\">Status</a> bits:"
|
---|
789 | "See <a href=\"#JDWP_ClassStatus\">JDWP.ClassStatus</a>")
|
---|
790 | )
|
---|
791 | (ErrorSet
|
---|
792 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
793 | "type.")
|
---|
794 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
795 | (Error VM_DEAD)
|
---|
796 | )
|
---|
797 | )
|
---|
798 | (Command Interfaces=10
|
---|
799 | "Returns the interfaces declared as implemented by this class. "
|
---|
800 | "Interfaces indirectly implemented (extended by the implemented "
|
---|
801 | "interface or implemented by a superclass) are not included."
|
---|
802 | (Out
|
---|
803 | (referenceType refType "The reference type ID.")
|
---|
804 | )
|
---|
805 | (Reply
|
---|
806 | (Repeat interfaces "The number of implemented interfaces"
|
---|
807 | (interfaceType interfaceType "implemented interface.")
|
---|
808 | )
|
---|
809 | )
|
---|
810 | (ErrorSet
|
---|
811 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
812 | "type.")
|
---|
813 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
814 | (Error VM_DEAD)
|
---|
815 | )
|
---|
816 | )
|
---|
817 | (Command ClassObject=11
|
---|
818 | "Returns the class object corresponding to this type. "
|
---|
819 | (Out
|
---|
820 | (referenceType refType "The reference type ID.")
|
---|
821 | )
|
---|
822 | (Reply
|
---|
823 | (classObject classObject "class object.")
|
---|
824 | )
|
---|
825 | (ErrorSet
|
---|
826 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
827 | "type.")
|
---|
828 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
829 | (Error VM_DEAD)
|
---|
830 | )
|
---|
831 | )
|
---|
832 | (Command SourceDebugExtension=12
|
---|
833 | "Returns the value of the SourceDebugExtension attribute. "
|
---|
834 | "Since JDWP version 1.4. Requires canGetSourceDebugExtension capability - see "
|
---|
835 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
836 | (Out
|
---|
837 | (referenceType refType "The reference type ID.")
|
---|
838 | )
|
---|
839 | (Reply
|
---|
840 | (string extension "extension attribute")
|
---|
841 | )
|
---|
842 | (ErrorSet
|
---|
843 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
844 | "type.")
|
---|
845 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
846 | (Error ABSENT_INFORMATION "If the extension is not specified.")
|
---|
847 | (Error NOT_IMPLEMENTED)
|
---|
848 | (Error VM_DEAD)
|
---|
849 | )
|
---|
850 | )
|
---|
851 | (Command SignatureWithGeneric=13
|
---|
852 | "Returns the JNI signature of a reference type along with the "
|
---|
853 | "generic signature if there is one. "
|
---|
854 | "Generic signatures are described in the signature attribute "
|
---|
855 | "section in the "
|
---|
856 | "<a href=\"http://java.sun.com/docs/books/vmspec\">
|
---|
857 | "Java Virtual Machine Specification, 3rd Edition.</a> "
|
---|
858 | "Since JDWP version 1.5."
|
---|
859 | "<p>
|
---|
860 | (Out
|
---|
861 | (referenceType refType "The reference type ID.")
|
---|
862 | )
|
---|
863 | (Reply
|
---|
864 | (string signature
|
---|
865 | "The JNI signature for the reference type.")
|
---|
866 | (string genericSignature
|
---|
867 | "The generic signature for the reference type or an empty "
|
---|
868 | "string if there is none.")
|
---|
869 | )
|
---|
870 | (ErrorSet
|
---|
871 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
872 | "type.")
|
---|
873 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
874 | (Error VM_DEAD)
|
---|
875 | )
|
---|
876 | )
|
---|
877 | (Command FieldsWithGeneric=14
|
---|
878 | "Returns information, including the generic signature if any, "
|
---|
879 | "for each field in a reference type. "
|
---|
880 | "Inherited fields are not included. "
|
---|
881 | "The field list will include any synthetic fields created "
|
---|
882 | "by the compiler. "
|
---|
883 | "Fields are returned in the order they occur in the class file. "
|
---|
884 | "Generic signatures are described in the signature attribute "
|
---|
885 | "section in the "
|
---|
886 | "<a href=\"http://java.sun.com/docs/books/vmspec\">
|
---|
887 | "Java Virtual Machine Specification, 3rd Edition.</a> "
|
---|
888 | "Since JDWP version 1.5."
|
---|
889 | (Out
|
---|
890 | (referenceType refType "The reference type ID.")
|
---|
891 | )
|
---|
892 | (Reply
|
---|
893 | (Repeat declared "Number of declared fields."
|
---|
894 | (Group FieldInfo
|
---|
895 | (field fieldID "Field ID.")
|
---|
896 | (string name "The name of the field.")
|
---|
897 | (string signature "The JNI signature of the field.")
|
---|
898 | (string genericSignature "The generic signature of the "
|
---|
899 | "field, or an empty string if there is none.")
|
---|
900 | (int modBits "The modifier bit flags (also known as access flags) "
|
---|
901 | "which provide additional information on the "
|
---|
902 | "field declaration. Individual flag values are "
|
---|
903 | "defined in the "
|
---|
904 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
|
---|
905 | "In addition, The <code>0xf0000000</code> bit identifies "
|
---|
906 | "the field as synthetic, if the synthetic attribute "
|
---|
907 | "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
|
---|
908 | )
|
---|
909 | )
|
---|
910 | )
|
---|
911 | (ErrorSet
|
---|
912 | (Error CLASS_NOT_PREPARED)
|
---|
913 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
914 | "type.")
|
---|
915 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
916 | (Error VM_DEAD)
|
---|
917 | )
|
---|
918 | )
|
---|
919 | (Command MethodsWithGeneric=15
|
---|
920 | "Returns information, including the generic signature if any, "
|
---|
921 | "for each method in a reference type. "
|
---|
922 | "Inherited methodss are not included. The list of methods will "
|
---|
923 | "include constructors (identified with the name \"<init>\"), "
|
---|
924 | "the initialization method (identified with the name \"<clinit>\") "
|
---|
925 | "if present, and any synthetic methods created by the compiler. "
|
---|
926 | "Methods are returned in the order they occur in the class file. "
|
---|
927 | "Generic signatures are described in the signature attribute "
|
---|
928 | "section in the "
|
---|
929 | "<a href=\"http://java.sun.com/docs/books/vmspec\">
|
---|
930 | "Java Virtual Machine Specification, 3rd Edition.</a> "
|
---|
931 | "Since JDWP version 1.5."
|
---|
932 | (Out
|
---|
933 | (referenceType refType "The reference type ID.")
|
---|
934 | )
|
---|
935 | (Reply
|
---|
936 | (Repeat declared "Number of declared methods."
|
---|
937 | (Group MethodInfo
|
---|
938 | (method methodID "Method ID.")
|
---|
939 | (string name "The name of the method.")
|
---|
940 | (string signature "The JNI signature of the method.")
|
---|
941 | (string genericSignature "The generic signature of the method, or "
|
---|
942 | "an empty string if there is none.")
|
---|
943 | (int modBits "The modifier bit flags (also known as access flags) "
|
---|
944 | "which provide additional information on the "
|
---|
945 | "method declaration. Individual flag values are "
|
---|
946 | "defined in the "
|
---|
947 | "<a href=\"http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html\">VM Specification</a>."
|
---|
948 | "In addition, The <code>0xf0000000</code> bit identifies "
|
---|
949 | "the method as synthetic, if the synthetic attribute "
|
---|
950 | "<a href=\"#JDWP_VirtualMachine_Capabilities\">capability</a> is available.")
|
---|
951 | )
|
---|
952 | )
|
---|
953 | )
|
---|
954 | (ErrorSet
|
---|
955 | (Error CLASS_NOT_PREPARED)
|
---|
956 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
957 | "type.")
|
---|
958 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
959 | (Error VM_DEAD)
|
---|
960 | )
|
---|
961 | )
|
---|
962 | (Command Instances=16
|
---|
963 | "Returns instances of this reference type. "
|
---|
964 | "Only instances that are reachable for the purposes of "
|
---|
965 | "garbage collection are returned. "
|
---|
966 | "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
|
---|
967 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
968 | (Out
|
---|
969 | (referenceType refType "The reference type ID.")
|
---|
970 | (int maxInstances "Maximum number of instances to return. Must be non-negative. "
|
---|
971 | "If zero, all instances are returned.")
|
---|
972 | )
|
---|
973 | (Reply
|
---|
974 | (Repeat instances "The number of instances that follow."
|
---|
975 | (tagged-object instance "An instance of this reference type.")
|
---|
976 | )
|
---|
977 | )
|
---|
978 | (ErrorSet
|
---|
979 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
980 | "type.")
|
---|
981 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
982 | (Error ILLEGAL_ARGUMENT "maxInstances is less than zero.")
|
---|
983 | (Error NOT_IMPLEMENTED)
|
---|
984 | (Error VM_DEAD)
|
---|
985 | )
|
---|
986 | )
|
---|
987 | (Command ClassFileVersion=17
|
---|
988 | "Returns the class file major and minor version numbers, as defined in the class "
|
---|
989 | "file format of the Java Virtual Machine specification. "
|
---|
990 | "<p>Since JDWP version 1.6. "
|
---|
991 | (Out
|
---|
992 | (referenceType refType "The class.")
|
---|
993 | )
|
---|
994 | (Reply
|
---|
995 | (int majorVersion "Major version number")
|
---|
996 | (int minorVersion "Minor version number")
|
---|
997 | )
|
---|
998 | (ErrorSet
|
---|
999 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1000 | "type.")
|
---|
1001 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1002 | (Error ABSENT_INFORMATION "The class file version information is "
|
---|
1003 | "absent for primitive and array types.")
|
---|
1004 | (Error VM_DEAD)
|
---|
1005 | )
|
---|
1006 | )
|
---|
1007 | (Command ConstantPool=18
|
---|
1008 | "Return the raw bytes of the constant pool in the format of the "
|
---|
1009 | "constant_pool item of the Class File Format in the "
|
---|
1010 | "Java Virtual Machine Specification. "
|
---|
1011 | "<p>Since JDWP version 1.6. Requires canGetConstantPool capability - see "
|
---|
1012 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>.""
|
---|
1013 | (Out
|
---|
1014 | (referenceType refType "The class.")
|
---|
1015 | )
|
---|
1016 | (Reply
|
---|
1017 | (int count "Total number of constant pool entries plus one. This "
|
---|
1018 | "corresponds to the constant_pool_count item of the "
|
---|
1019 | "Class File Format in the Java Virtual Machine Specification. ")
|
---|
1020 | (Repeat bytes
|
---|
1021 | (byte cpbytes "Raw bytes of constant pool")
|
---|
1022 | )
|
---|
1023 | )
|
---|
1024 | (ErrorSet
|
---|
1025 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1026 | "type.")
|
---|
1027 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1028 | (Error NOT_IMPLEMENTED "If the target virtual machine does not "
|
---|
1029 | "support the retrieval of constant pool information.")
|
---|
1030 | (Error ABSENT_INFORMATION "The Constant Pool information is "
|
---|
1031 | "absent for primitive and array types.")
|
---|
1032 | (Error VM_DEAD)
|
---|
1033 | )
|
---|
1034 | )
|
---|
1035 | )
|
---|
1036 | (CommandSet ClassType=3
|
---|
1037 | (Command Superclass=1
|
---|
1038 | "Returns the immediate superclass of a class."
|
---|
1039 | (Out
|
---|
1040 | (classType clazz "The class type ID.")
|
---|
1041 | )
|
---|
1042 | (Reply
|
---|
1043 | (classType superclass
|
---|
1044 | "The superclass (null if the class ID for java.lang.Object is specified).")
|
---|
1045 | )
|
---|
1046 | (ErrorSet
|
---|
1047 | (Error INVALID_CLASS "clazz is not the ID of a class.")
|
---|
1048 | (Error INVALID_OBJECT "clazz is not a known ID.")
|
---|
1049 | (Error VM_DEAD)
|
---|
1050 | )
|
---|
1051 | )
|
---|
1052 | (Command SetValues=2
|
---|
1053 | "Sets the value of one or more static fields. "
|
---|
1054 | "Each field must be member of the class type "
|
---|
1055 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
1056 | "Access control is not enforced; for example, the values of private "
|
---|
1057 | "fields can be set. Final fields cannot be set."
|
---|
1058 | "For primitive values, the value's type must match the "
|
---|
1059 | "field's type exactly. For object values, there must exist a "
|
---|
1060 | "widening reference conversion from the value's type to the
|
---|
1061 | "field's type and the field's type must be loaded. "
|
---|
1062 | (Out
|
---|
1063 | (classType clazz "The class type ID.")
|
---|
1064 | (Repeat values "The number of fields to set."
|
---|
1065 | (Group FieldValue "A Field/Value pair."
|
---|
1066 | (field fieldID "Field to set.")
|
---|
1067 | (untagged-value value "Value to put in the field.")
|
---|
1068 | )
|
---|
1069 | )
|
---|
1070 | )
|
---|
1071 | (Reply "none"
|
---|
1072 | )
|
---|
1073 | (ErrorSet
|
---|
1074 | (Error INVALID_CLASS "clazz is not the ID of a class.")
|
---|
1075 | (Error CLASS_NOT_PREPARED)
|
---|
1076 | (Error INVALID_OBJECT "clazz is not a known ID or a value of an "
|
---|
1077 | "object field is not a known ID.")
|
---|
1078 | (Error INVALID_FIELDID)
|
---|
1079 | (Error VM_DEAD)
|
---|
1080 | )
|
---|
1081 | )
|
---|
1082 | (Command InvokeMethod=3
|
---|
1083 | "Invokes a static method. "
|
---|
1084 | "The method must be member of the class type "
|
---|
1085 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
1086 | "Access control is not enforced; for example, private "
|
---|
1087 | "methods can be invoked."
|
---|
1088 | "<p>"
|
---|
1089 | "The method invocation will occur in the specified thread. "
|
---|
1090 | "Method invocation can occur only if the specified thread "
|
---|
1091 | "has been suspended by an event. "
|
---|
1092 | "Method invocation is not supported "
|
---|
1093 | "when the target VM has been suspended by the front-end. "
|
---|
1094 | "<p>"
|
---|
1095 | "The specified method is invoked with the arguments in the specified "
|
---|
1096 | "argument list. "
|
---|
1097 | "The method invocation is synchronous; the reply packet is not "
|
---|
1098 | "sent until the invoked method returns in the target VM. "
|
---|
1099 | "The return value (possibly the void value) is "
|
---|
1100 | "included in the reply packet. "
|
---|
1101 | "If the invoked method throws an exception, the "
|
---|
1102 | "exception object ID is set in the reply packet; otherwise, the "
|
---|
1103 | "exception object ID is null. "
|
---|
1104 | "<p>"
|
---|
1105 | "For primitive arguments, the argument value's type must match the "
|
---|
1106 | "argument's type exactly. For object arguments, there must exist a "
|
---|
1107 | "widening reference conversion from the argument value's type to the "
|
---|
1108 | "argument's type and the argument's type must be loaded. "
|
---|
1109 | "<p>"
|
---|
1110 | "By default, all threads in the target VM are resumed while "
|
---|
1111 | "the method is being invoked if they were previously "
|
---|
1112 | "suspended by an event or by command. "
|
---|
1113 | "This is done to prevent the deadlocks "
|
---|
1114 | "that will occur if any of the threads own monitors "
|
---|
1115 | "that will be needed by the invoked method. It is possible that "
|
---|
1116 | "breakpoints or other events might occur during the invocation. "
|
---|
1117 | "Note, however, that this implicit resume acts exactly like "
|
---|
1118 | "the ThreadReference resume command, so if the thread's suspend "
|
---|
1119 | "count is greater than 1, it will remain in a suspended state "
|
---|
1120 | "during the invocation. By default, when the invocation completes, "
|
---|
1121 | "all threads in the target VM are suspended, regardless their state "
|
---|
1122 | "before the invocation. "
|
---|
1123 | "<p>"
|
---|
1124 | "The resumption of other threads during the invoke can be prevented "
|
---|
1125 | "by specifying the INVOKE_SINGLE_THREADED "
|
---|
1126 | "bit flag in the <code>options</code> field; however, "
|
---|
1127 | "there is no protection against or recovery from the deadlocks "
|
---|
1128 | "described above, so this option should be used with great caution. "
|
---|
1129 | "Only the specified thread will be resumed (as described for all "
|
---|
1130 | "threads above). Upon completion of a single threaded invoke, the invoking thread "
|
---|
1131 | "will be suspended once again. Note that any threads started during "
|
---|
1132 | "the single threaded invocation will not be suspended when the "
|
---|
1133 | "invocation completes. "
|
---|
1134 | "<p>"
|
---|
1135 | "If the target VM is disconnected during the invoke (for example, through "
|
---|
1136 | "the VirtualMachine dispose command) the method invocation continues. "
|
---|
1137 | (Out
|
---|
1138 | (classType clazz "The class type ID.")
|
---|
1139 | (threadObject thread "The thread in which to invoke.")
|
---|
1140 | (method methodID "The method to invoke.")
|
---|
1141 | (Repeat arguments
|
---|
1142 | (value arg "The argument value.")
|
---|
1143 | )
|
---|
1144 | (int options "Invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
|
---|
1145 | )
|
---|
1146 | (Reply
|
---|
1147 | (value returnValue "The returned value.")
|
---|
1148 | (tagged-object exception "The thrown exception.")
|
---|
1149 | )
|
---|
1150 | (ErrorSet
|
---|
1151 | (Error INVALID_CLASS "clazz is not the ID of a class.")
|
---|
1152 | (Error INVALID_OBJECT "clazz is not a known ID.")
|
---|
1153 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1154 | (Error INVALID_THREAD)
|
---|
1155 | (Error THREAD_NOT_SUSPENDED)
|
---|
1156 | (Error VM_DEAD)
|
---|
1157 | )
|
---|
1158 | )
|
---|
1159 | (Command NewInstance=4
|
---|
1160 | "Creates a new object of this type, invoking the specified "
|
---|
1161 | "constructor. The constructor method ID must be a member of "
|
---|
1162 | "the class type."
|
---|
1163 | "<p>"
|
---|
1164 | "Instance creation will occur in the specified thread. "
|
---|
1165 | "Instance creation can occur only if the specified thread "
|
---|
1166 | "has been suspended by an event. "
|
---|
1167 | "Method invocation is not supported "
|
---|
1168 | "when the target VM has been suspended by the front-end. "
|
---|
1169 | "<p>"
|
---|
1170 | "The specified constructor is invoked with the arguments in the specified "
|
---|
1171 | "argument list. "
|
---|
1172 | "The constructor invocation is synchronous; the reply packet is not "
|
---|
1173 | "sent until the invoked method returns in the target VM. "
|
---|
1174 | "The return value (possibly the void value) is "
|
---|
1175 | "included in the reply packet. "
|
---|
1176 | "If the constructor throws an exception, the "
|
---|
1177 | "exception object ID is set in the reply packet; otherwise, the "
|
---|
1178 | "exception object ID is null. "
|
---|
1179 | "<p>"
|
---|
1180 | "For primitive arguments, the argument value's type must match the "
|
---|
1181 | "argument's type exactly. For object arguments, there must exist a "
|
---|
1182 | "widening reference conversion from the argument value's type to the "
|
---|
1183 | "argument's type and the argument's type must be loaded. "
|
---|
1184 | "<p>"
|
---|
1185 | "By default, all threads in the target VM are resumed while "
|
---|
1186 | "the method is being invoked if they were previously "
|
---|
1187 | "suspended by an event or by command. "
|
---|
1188 | "This is done to prevent the deadlocks "
|
---|
1189 | "that will occur if any of the threads own monitors "
|
---|
1190 | "that will be needed by the invoked method. It is possible that "
|
---|
1191 | "breakpoints or other events might occur during the invocation. "
|
---|
1192 | "Note, however, that this implicit resume acts exactly like "
|
---|
1193 | "the ThreadReference resume command, so if the thread's suspend "
|
---|
1194 | "count is greater than 1, it will remain in a suspended state "
|
---|
1195 | "during the invocation. By default, when the invocation completes, "
|
---|
1196 | "all threads in the target VM are suspended, regardless their state "
|
---|
1197 | "before the invocation. "
|
---|
1198 | "<p>"
|
---|
1199 | "The resumption of other threads during the invoke can be prevented "
|
---|
1200 | "by specifying the INVOKE_SINGLE_THREADED "
|
---|
1201 | "bit flag in the <code>options</code> field; however, "
|
---|
1202 | "there is no protection against or recovery from the deadlocks "
|
---|
1203 | "described above, so this option should be used with great caution. "
|
---|
1204 | "Only the specified thread will be resumed (as described for all "
|
---|
1205 | "threads above). Upon completion of a single threaded invoke, the invoking thread "
|
---|
1206 | "will be suspended once again. Note that any threads started during "
|
---|
1207 | "the single threaded invocation will not be suspended when the "
|
---|
1208 | "invocation completes. "
|
---|
1209 | "<p>"
|
---|
1210 | "If the target VM is disconnected during the invoke (for example, through "
|
---|
1211 | "the VirtualMachine dispose command) the method invocation continues. "
|
---|
1212 | (Out
|
---|
1213 | (classType clazz "The class type ID.")
|
---|
1214 | (threadObject thread "The thread in which to invoke the constructor.")
|
---|
1215 | (method methodID "The constructor to invoke.")
|
---|
1216 | (Repeat arguments
|
---|
1217 | (value arg "The argument value.")
|
---|
1218 | )
|
---|
1219 | (int options "Constructor invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
|
---|
1220 | )
|
---|
1221 | (Reply
|
---|
1222 | (tagged-object newObject "The newly created object, or null "
|
---|
1223 | "if the constructor threw an exception.")
|
---|
1224 | (tagged-object exception "The thrown exception, if any; otherwise, null.")
|
---|
1225 | )
|
---|
1226 | (ErrorSet
|
---|
1227 | (Error INVALID_CLASS "clazz is not the ID of a class.")
|
---|
1228 | (Error INVALID_OBJECT "clazz is not a known ID or a value of an "
|
---|
1229 | "object parameter is not a known ID..")
|
---|
1230 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1231 | (Error INVALID_OBJECT)
|
---|
1232 | (Error INVALID_THREAD)
|
---|
1233 | (Error THREAD_NOT_SUSPENDED)
|
---|
1234 | (Error VM_DEAD)
|
---|
1235 | )
|
---|
1236 | )
|
---|
1237 | )
|
---|
1238 | (CommandSet ArrayType=4
|
---|
1239 | (Command NewInstance=1
|
---|
1240 | "Creates a new array object of this type with a given length."
|
---|
1241 | (Out
|
---|
1242 | (arrayType arrType "The array type of the new instance.")
|
---|
1243 | (int length "The length of the array.")
|
---|
1244 | )
|
---|
1245 | (Reply
|
---|
1246 | (tagged-object newArray "The newly created array object. ")
|
---|
1247 | )
|
---|
1248 | (ErrorSet
|
---|
1249 | (Error INVALID_ARRAY)
|
---|
1250 | (Error INVALID_OBJECT)
|
---|
1251 | (Error VM_DEAD)
|
---|
1252 | )
|
---|
1253 | )
|
---|
1254 | )
|
---|
1255 | (CommandSet InterfaceType=5
|
---|
1256 | )
|
---|
1257 | (CommandSet Method=6
|
---|
1258 | (Command LineTable=1
|
---|
1259 | "Returns line number information for the method, if present. "
|
---|
1260 | "The line table maps source line numbers to the initial code index "
|
---|
1261 | "of the line. The line table "
|
---|
1262 | "is ordered by code index (from lowest to highest). The line number "
|
---|
1263 | "information is constant unless a new class definition is installed "
|
---|
1264 | "using <a href=\"#JDWP_VirtualMachine_RedefineClasses\">RedefineClasses</a>."
|
---|
1265 | (Out
|
---|
1266 | (referenceType refType "The class.")
|
---|
1267 | (method methodID "The method.")
|
---|
1268 | )
|
---|
1269 | (Reply
|
---|
1270 | (long start "Lowest valid code index for the method, >=0, or -1 if the method is native ")
|
---|
1271 | (long end "Highest valid code index for the method, >=0, or -1 if the method is native")
|
---|
1272 | (Repeat lines "The number of entries in the line table for this method."
|
---|
1273 | (Group LineInfo
|
---|
1274 | (long lineCodeIndex "Initial code index of the line, "
|
---|
1275 | "start <= lineCodeIndex < end")
|
---|
1276 | (int lineNumber "Line number.")
|
---|
1277 | )
|
---|
1278 | )
|
---|
1279 | )
|
---|
1280 | (ErrorSet
|
---|
1281 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1282 | "type.")
|
---|
1283 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1284 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1285 | (Error VM_DEAD)
|
---|
1286 | )
|
---|
1287 | )
|
---|
1288 | (Command VariableTable=2
|
---|
1289 | "Returns variable information for the method. The variable table "
|
---|
1290 | "includes arguments and locals declared within the method. For "
|
---|
1291 | "instance methods, the \"this\" reference is included in the "
|
---|
1292 | "table. Also, synthetic variables may be present. "
|
---|
1293 | (Out
|
---|
1294 | (referenceType refType "The class.")
|
---|
1295 | (method methodID "The method.")
|
---|
1296 | )
|
---|
1297 | (Reply
|
---|
1298 | (int argCnt "The number of words in the frame used by arguments. "
|
---|
1299 | "Eight-byte arguments use two words; all others use one. ")
|
---|
1300 | (Repeat slots "The number of variables."
|
---|
1301 | (Group SlotInfo "Information about the variable."
|
---|
1302 | (long codeIndex
|
---|
1303 | "First code index at which the variable is visible (unsigned). "
|
---|
1304 | "Used in conjunction with <code>length</code>. "
|
---|
1305 | "The variable can be get or set only when the current "
|
---|
1306 | "<code>codeIndex</code> <= current frame code index < <code>codeIndex + length</code> ")
|
---|
1307 | (string name "The variable's name.")
|
---|
1308 | (string signature "The variable type's JNI signature.")
|
---|
1309 | (int length
|
---|
1310 | "Unsigned value used in conjunction with <code>codeIndex</code>. "
|
---|
1311 | "The variable can be get or set only when the current "
|
---|
1312 | "<code>codeIndex</code> <= current frame code index < <code>code index + length</code> ")
|
---|
1313 | (int slot "The local variable's index in its frame")
|
---|
1314 | )
|
---|
1315 | )
|
---|
1316 | )
|
---|
1317 | (ErrorSet
|
---|
1318 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1319 | "type.")
|
---|
1320 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1321 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1322 | (Error ABSENT_INFORMATION "there is no variable information for the method.")
|
---|
1323 | (Error VM_DEAD)
|
---|
1324 | )
|
---|
1325 | )
|
---|
1326 | (Command Bytecodes=3
|
---|
1327 | "Retrieve the method's bytecodes as defined in the JVM Specification."
|
---|
1328 | "Requires canGetBytecodes capability - see "
|
---|
1329 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
1330 | (Out
|
---|
1331 | (referenceType refType "The class.")
|
---|
1332 | (method methodID "The method.")
|
---|
1333 | )
|
---|
1334 | (Reply
|
---|
1335 | (Repeat bytes
|
---|
1336 | (byte bytecode "A Java bytecode.")
|
---|
1337 | )
|
---|
1338 | )
|
---|
1339 | (ErrorSet
|
---|
1340 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1341 | "type.")
|
---|
1342 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1343 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1344 | (Error NOT_IMPLEMENTED "If the target virtual machine does not "
|
---|
1345 | "support the retrieval of bytecodes.")
|
---|
1346 | (Error VM_DEAD)
|
---|
1347 | )
|
---|
1348 | )
|
---|
1349 | (Command IsObsolete=4
|
---|
1350 | "Determine if this method is obsolete. A method is obsolete if it has been replaced "
|
---|
1351 | "by a non-equivalent method using the "
|
---|
1352 | "<a href=\"#JDWP_VirtualMachine_RedefineClasses\">RedefineClasses</a> command. "
|
---|
1353 | "The original and redefined methods are considered equivalent if their bytecodes are "
|
---|
1354 | "the same except for indices into the constant pool and the referenced constants are "
|
---|
1355 | "equal."
|
---|
1356 | (Out
|
---|
1357 | (referenceType refType "The class.")
|
---|
1358 | (method methodID "The method.")
|
---|
1359 | )
|
---|
1360 | (Reply
|
---|
1361 | (boolean isObsolete "true if this method has been replaced"
|
---|
1362 | "by a non-equivalent method using"
|
---|
1363 | "the RedefineClasses command.")
|
---|
1364 | )
|
---|
1365 | (ErrorSet
|
---|
1366 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1367 | "type.")
|
---|
1368 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1369 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1370 | (Error NOT_IMPLEMENTED "If the target virtual machine does "
|
---|
1371 | "not support this query.")
|
---|
1372 | (Error VM_DEAD)
|
---|
1373 | )
|
---|
1374 | )
|
---|
1375 | (Command VariableTableWithGeneric=5
|
---|
1376 | "Returns variable information for the method, including "
|
---|
1377 | "generic signatures for the variables. The variable table "
|
---|
1378 | "includes arguments and locals declared within the method. For "
|
---|
1379 | "instance methods, the \"this\" reference is included in the "
|
---|
1380 | "table. Also, synthetic variables may be present. "
|
---|
1381 | "Generic signatures are described in the signature attribute "
|
---|
1382 | "section in the "
|
---|
1383 | "<a href=\"http://java.sun.com/docs/books/vmspec\">
|
---|
1384 | "Java Virtual Machine Specification, 3rd Edition.</a> "
|
---|
1385 | "Since JDWP version 1.5."
|
---|
1386 | (Out
|
---|
1387 | (referenceType refType "The class.")
|
---|
1388 | (method methodID "The method.")
|
---|
1389 | )
|
---|
1390 | (Reply
|
---|
1391 | (int argCnt "The number of words in the frame used by arguments. "
|
---|
1392 | "Eight-byte arguments use two words; all others use one. ")
|
---|
1393 | (Repeat slots "The number of variables."
|
---|
1394 | (Group SlotInfo "Information about the variable."
|
---|
1395 | (long codeIndex
|
---|
1396 | "First code index at which the variable is visible (unsigned). "
|
---|
1397 | "Used in conjunction with <code>length</code>. "
|
---|
1398 | "The variable can be get or set only when the current "
|
---|
1399 | "<code>codeIndex</code> <= current frame code index < <code>codeIndex + length</code> ")
|
---|
1400 | (string name "The variable's name.")
|
---|
1401 | (string signature "The variable type's JNI signature.")
|
---|
1402 | (string genericSignature "The variable type's generic "
|
---|
1403 | "signature or an empty string if there is none.")
|
---|
1404 | (int length
|
---|
1405 | "Unsigned value used in conjunction with <code>codeIndex</code>. "
|
---|
1406 | "The variable can be get or set only when the current "
|
---|
1407 | "<code>codeIndex</code> <= current frame code index < <code>code index + length</code> ")
|
---|
1408 | (int slot "The local variable's index in its frame")
|
---|
1409 | )
|
---|
1410 | )
|
---|
1411 | )
|
---|
1412 | (ErrorSet
|
---|
1413 | (Error INVALID_CLASS "refType is not the ID of a reference "
|
---|
1414 | "type.")
|
---|
1415 | (Error INVALID_OBJECT "refType is not a known ID.")
|
---|
1416 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1417 | (Error ABSENT_INFORMATION "there is no variable information for the method.")
|
---|
1418 | (Error VM_DEAD)
|
---|
1419 | )
|
---|
1420 | )
|
---|
1421 |
|
---|
1422 | )
|
---|
1423 | (CommandSet Field=8
|
---|
1424 | )
|
---|
1425 | (CommandSet ObjectReference=9
|
---|
1426 | (Command ReferenceType=1
|
---|
1427 | "Returns the runtime type of the object. "
|
---|
1428 | "The runtime type will be a class or an array. "
|
---|
1429 | (Out
|
---|
1430 | (object object "The object ID")
|
---|
1431 | )
|
---|
1432 | (Reply
|
---|
1433 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
1434 | "of following reference type. ")
|
---|
1435 | (referenceTypeID typeID "The runtime reference type.")
|
---|
1436 | )
|
---|
1437 | (ErrorSet
|
---|
1438 | (Error INVALID_OBJECT)
|
---|
1439 | (Error VM_DEAD)
|
---|
1440 | )
|
---|
1441 | )
|
---|
1442 | (Command GetValues=2
|
---|
1443 | "Returns the value of one or more instance fields. "
|
---|
1444 | "Each field must be member of the object's type "
|
---|
1445 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
1446 | "Access control is not enforced; for example, the values of private "
|
---|
1447 | "fields can be obtained."
|
---|
1448 | (Out
|
---|
1449 | (object object "The object ID")
|
---|
1450 | (Repeat fields "The number of values to get"
|
---|
1451 | (Group Field
|
---|
1452 | (field fieldID "Field to get.")
|
---|
1453 | )
|
---|
1454 | )
|
---|
1455 | )
|
---|
1456 | (Reply
|
---|
1457 | (Repeat values "The number of values returned, always equal to 'fields', "
|
---|
1458 | "the number of values to get. Field values are ordered "
|
---|
1459 | "in the reply in the same order as corresponding fieldIDs "
|
---|
1460 | "in the command."
|
---|
1461 | (value value "The field value")
|
---|
1462 | )
|
---|
1463 | )
|
---|
1464 | (ErrorSet
|
---|
1465 | (Error INVALID_OBJECT)
|
---|
1466 | (Error INVALID_FIELDID)
|
---|
1467 | (Error VM_DEAD)
|
---|
1468 | )
|
---|
1469 | )
|
---|
1470 | (Command SetValues=3
|
---|
1471 | "Sets the value of one or more instance fields. "
|
---|
1472 | "Each field must be member of the object's type "
|
---|
1473 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
1474 | "Access control is not enforced; for example, the values of private "
|
---|
1475 | "fields can be set. "
|
---|
1476 | "For primitive values, the value's type must match the "
|
---|
1477 | "field's type exactly. For object values, there must be a "
|
---|
1478 | "widening reference conversion from the value's type to the
|
---|
1479 | "field's type and the field's type must be loaded. "
|
---|
1480 | (Out
|
---|
1481 | (object object "The object ID")
|
---|
1482 | (Repeat values "The number of fields to set."
|
---|
1483 | (Group FieldValue "A Field/Value pair."
|
---|
1484 | (field fieldID "Field to set.")
|
---|
1485 | (untagged-value value "Value to put in the field.")
|
---|
1486 | )
|
---|
1487 | )
|
---|
1488 | )
|
---|
1489 | (Reply "none"
|
---|
1490 | )
|
---|
1491 | (ErrorSet
|
---|
1492 | (Error INVALID_OBJECT)
|
---|
1493 | (Error INVALID_FIELDID)
|
---|
1494 | (Error VM_DEAD)
|
---|
1495 | )
|
---|
1496 | )
|
---|
1497 | (Command MonitorInfo=5
|
---|
1498 | "Returns monitor information for an object. All threads int the VM must "
|
---|
1499 | "be suspended."
|
---|
1500 | "Requires canGetMonitorInfo capability - see "
|
---|
1501 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
1502 | (Out
|
---|
1503 | (object object "The object ID")
|
---|
1504 | )
|
---|
1505 | (Reply
|
---|
1506 | (threadObject owner "The monitor owner, or null if it is not currently owned.")
|
---|
1507 | (int entryCount "The number of times the monitor has been entered.")
|
---|
1508 | (Repeat waiters "The number of threads that are waiting for the monitor "
|
---|
1509 | "0 if there is no current owner"
|
---|
1510 | (threadObject thread "A thread waiting for this monitor.")
|
---|
1511 | )
|
---|
1512 | )
|
---|
1513 | (ErrorSet
|
---|
1514 | (Error INVALID_OBJECT)
|
---|
1515 | (Error NOT_IMPLEMENTED)
|
---|
1516 | (Error VM_DEAD)
|
---|
1517 | )
|
---|
1518 | )
|
---|
1519 | (Command InvokeMethod=6
|
---|
1520 | "Invokes a instance method. "
|
---|
1521 | "The method must be member of the object's type "
|
---|
1522 | "or one of its superclasses, superinterfaces, or implemented interfaces. "
|
---|
1523 | "Access control is not enforced; for example, private "
|
---|
1524 | "methods can be invoked."
|
---|
1525 | "<p>"
|
---|
1526 | "The method invocation will occur in the specified thread. "
|
---|
1527 | "Method invocation can occur only if the specified thread "
|
---|
1528 | "has been suspended by an event. "
|
---|
1529 | "Method invocation is not supported "
|
---|
1530 | "when the target VM has been suspended by the front-end. "
|
---|
1531 | "<p>"
|
---|
1532 | "The specified method is invoked with the arguments in the specified "
|
---|
1533 | "argument list. "
|
---|
1534 | "The method invocation is synchronous; the reply packet is not "
|
---|
1535 | "sent until the invoked method returns in the target VM. "
|
---|
1536 | "The return value (possibly the void value) is "
|
---|
1537 | "included in the reply packet. "
|
---|
1538 | "If the invoked method throws an exception, the "
|
---|
1539 | "exception object ID is set in the reply packet; otherwise, the "
|
---|
1540 | "exception object ID is null. "
|
---|
1541 | "<p>"
|
---|
1542 | "For primitive arguments, the argument value's type must match the "
|
---|
1543 | "argument's type exactly. For object arguments, there must be a "
|
---|
1544 | "widening reference conversion from the argument value's type to the "
|
---|
1545 | "argument's type and the argument's type must be loaded. "
|
---|
1546 | "<p>"
|
---|
1547 | "By default, all threads in the target VM are resumed while "
|
---|
1548 | "the method is being invoked if they were previously "
|
---|
1549 | "suspended by an event or by command. "
|
---|
1550 | "This is done to prevent the deadlocks "
|
---|
1551 | "that will occur if any of the threads own monitors "
|
---|
1552 | "that will be needed by the invoked method. It is possible that "
|
---|
1553 | "breakpoints or other events might occur during the invocation. "
|
---|
1554 | "Note, however, that this implicit resume acts exactly like "
|
---|
1555 | "the ThreadReference resume command, so if the thread's suspend "
|
---|
1556 | "count is greater than 1, it will remain in a suspended state "
|
---|
1557 | "during the invocation. By default, when the invocation completes, "
|
---|
1558 | "all threads in the target VM are suspended, regardless their state "
|
---|
1559 | "before the invocation. "
|
---|
1560 | "<p>"
|
---|
1561 | "The resumption of other threads during the invoke can be prevented "
|
---|
1562 | "by specifying the INVOKE_SINGLE_THREADED "
|
---|
1563 | "bit flag in the <code>options</code> field; however, "
|
---|
1564 | "there is no protection against or recovery from the deadlocks "
|
---|
1565 | "described above, so this option should be used with great caution. "
|
---|
1566 | "Only the specified thread will be resumed (as described for all "
|
---|
1567 | "threads above). Upon completion of a single threaded invoke, the invoking thread "
|
---|
1568 | "will be suspended once again. Note that any threads started during "
|
---|
1569 | "the single threaded invocation will not be suspended when the "
|
---|
1570 | "invocation completes. "
|
---|
1571 | "<p>"
|
---|
1572 | "If the target VM is disconnected during the invoke (for example, through "
|
---|
1573 | "the VirtualMachine dispose command) the method invocation continues. "
|
---|
1574 | (Out
|
---|
1575 | (object object "The object ID")
|
---|
1576 | (threadObject thread "The thread in which to invoke.")
|
---|
1577 | (classType clazz "The class type.")
|
---|
1578 | (method methodID "The method to invoke.")
|
---|
1579 | (Repeat arguments "The number of arguments."
|
---|
1580 | (value arg "The argument value.")
|
---|
1581 | )
|
---|
1582 | (int options "Invocation <a href=\"#JDWP_InvokeOptions\">options</a>")
|
---|
1583 | )
|
---|
1584 | (Reply
|
---|
1585 | (value returnValue "The returned value, or null if an exception is thrown.")
|
---|
1586 | (tagged-object exception "The thrown exception, if any.")
|
---|
1587 | )
|
---|
1588 | (ErrorSet
|
---|
1589 | (Error INVALID_OBJECT)
|
---|
1590 | (Error INVALID_CLASS "clazz is not the ID of a reference "
|
---|
1591 | "type.")
|
---|
1592 | (Error INVALID_METHODID "methodID is not the ID of a method.")
|
---|
1593 | (Error INVALID_THREAD)
|
---|
1594 | (Error THREAD_NOT_SUSPENDED)
|
---|
1595 | (Error VM_DEAD)
|
---|
1596 | )
|
---|
1597 | )
|
---|
1598 | (Command DisableCollection=7
|
---|
1599 | "Prevents garbage collection for the given object. By "
|
---|
1600 | "default all objects in back-end replies may be "
|
---|
1601 | "collected at any time the target VM is running. A call to "
|
---|
1602 | "this command guarantees that the object will not be "
|
---|
1603 | "collected. The "
|
---|
1604 | "<a href=\"#JDWP_ObjectReference_EnableCollection\">EnableCollection</a> "
|
---|
1605 | "command can be used to "
|
---|
1606 | "allow collection once again. "
|
---|
1607 | "<p>"
|
---|
1608 | "Note that while the target VM is suspended, no garbage "
|
---|
1609 | "collection will occur because all threads are suspended. "
|
---|
1610 | "The typical examination of variables, fields, and arrays "
|
---|
1611 | "during the suspension is safe without explicitly disabling "
|
---|
1612 | "garbage collection. "
|
---|
1613 | "<p>"
|
---|
1614 | "This method should be used sparingly, as it alters the "
|
---|
1615 | "pattern of garbage collection in the target VM and, "
|
---|
1616 | "consequently, may result in application behavior under the "
|
---|
1617 | "debugger that differs from its non-debugged behavior. "
|
---|
1618 | (Out
|
---|
1619 | (object object "The object ID")
|
---|
1620 | )
|
---|
1621 | (Reply "none"
|
---|
1622 | )
|
---|
1623 | (ErrorSet
|
---|
1624 | (Error INVALID_OBJECT)
|
---|
1625 | (Error VM_DEAD)
|
---|
1626 | )
|
---|
1627 | )
|
---|
1628 | (Command EnableCollection=8
|
---|
1629 | "Permits garbage collection for this object. By default all "
|
---|
1630 | "objects returned by JDWP may become unreachable in the target VM, "
|
---|
1631 | "and hence may be garbage collected. A call to this command is "
|
---|
1632 | "necessary only if garbage collection was previously disabled with "
|
---|
1633 | "the <a href=\"#JDWP_ObjectReference_DisableCollection\">DisableCollection</a> "
|
---|
1634 | "command."
|
---|
1635 | (Out
|
---|
1636 | (object object "The object ID")
|
---|
1637 | )
|
---|
1638 | (Reply "none"
|
---|
1639 | )
|
---|
1640 | (ErrorSet
|
---|
1641 | (Error VM_DEAD)
|
---|
1642 | )
|
---|
1643 | )
|
---|
1644 | (Command IsCollected=9
|
---|
1645 | "Determines whether an object has been garbage collected in the "
|
---|
1646 | "target VM. "
|
---|
1647 | (Out
|
---|
1648 | (object object "The object ID")
|
---|
1649 | )
|
---|
1650 | (Reply
|
---|
1651 | (boolean isCollected "true if the object has been collected; false otherwise")
|
---|
1652 | )
|
---|
1653 | (ErrorSet
|
---|
1654 | (Error INVALID_OBJECT)
|
---|
1655 | (Error VM_DEAD)
|
---|
1656 | )
|
---|
1657 | )
|
---|
1658 | (Command ReferringObjects=10
|
---|
1659 | "Returns objects that directly reference this object. "
|
---|
1660 | "Only objects that are reachable for the purposes "
|
---|
1661 | "of garbage collection are returned. "
|
---|
1662 | "Note that an object can also be referenced in other ways, "
|
---|
1663 | "such as from a local variable in a stack frame, or from a JNI global "
|
---|
1664 | "reference. Such non-object referrers are not returned by this command. "
|
---|
1665 | "<p>Since JDWP version 1.6. Requires canGetInstanceInfo capability - see "
|
---|
1666 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
1667 | (Out
|
---|
1668 | (object object "The object ID")
|
---|
1669 | (int maxReferrers "Maximum number of referring objects to return. "
|
---|
1670 | "Must be non-negative. If zero, all referring "
|
---|
1671 | "objects are returned.")
|
---|
1672 | )
|
---|
1673 | (Reply
|
---|
1674 | (Repeat referringObjects "The number of objects that follow."
|
---|
1675 | (tagged-object instance "An object that references this object.")
|
---|
1676 | )
|
---|
1677 | )
|
---|
1678 | (ErrorSet
|
---|
1679 | (Error INVALID_OBJECT "object is not a known ID.")
|
---|
1680 | (Error ILLEGAL_ARGUMENT "maxReferrers is less than zero.")
|
---|
1681 | (Error NOT_IMPLEMENTED)
|
---|
1682 | (Error VM_DEAD)
|
---|
1683 | )
|
---|
1684 | )
|
---|
1685 | )
|
---|
1686 |
|
---|
1687 | (CommandSet StringReference=10
|
---|
1688 | (Command Value=1
|
---|
1689 | "Returns the characters contained in the string. "
|
---|
1690 | (Out
|
---|
1691 | (object stringObject "The String object ID. ")
|
---|
1692 | )
|
---|
1693 | (Reply
|
---|
1694 | (string stringValue "UTF-8 representation of the string value.")
|
---|
1695 | )
|
---|
1696 | (ErrorSet
|
---|
1697 | (Error INVALID_STRING)
|
---|
1698 | (Error INVALID_OBJECT)
|
---|
1699 | (Error VM_DEAD)
|
---|
1700 | )
|
---|
1701 | )
|
---|
1702 | )
|
---|
1703 | (CommandSet ThreadReference=11
|
---|
1704 | (Command Name=1
|
---|
1705 | "Returns the thread name. "
|
---|
1706 | (Out
|
---|
1707 | (threadObject thread "The thread object ID. ")
|
---|
1708 | )
|
---|
1709 | (Reply
|
---|
1710 | (string threadName "The thread name.")
|
---|
1711 | )
|
---|
1712 | (ErrorSet
|
---|
1713 | (Error INVALID_THREAD)
|
---|
1714 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1715 | (Error VM_DEAD)
|
---|
1716 | )
|
---|
1717 | )
|
---|
1718 | (Command Suspend=2
|
---|
1719 | "Suspends the thread. "
|
---|
1720 | "<p>"
|
---|
1721 | "Unlike java.lang.Thread.suspend(), suspends of both "
|
---|
1722 | "the virtual machine and individual threads are counted. Before "
|
---|
1723 | "a thread will run again, it must be resumed the same number "
|
---|
1724 | "of times it has been suspended. "
|
---|
1725 | "<p>"
|
---|
1726 | "Suspending single threads with command has the same "
|
---|
1727 | "dangers java.lang.Thread.suspend(). If the suspended "
|
---|
1728 | "thread holds a monitor needed by another running thread, "
|
---|
1729 | "deadlock is possible in the target VM (at least until the "
|
---|
1730 | "suspended thread is resumed again). "
|
---|
1731 | "<p>"
|
---|
1732 | "The suspended thread is guaranteed to remain suspended until "
|
---|
1733 | "resumed through one of the JDI resume methods mentioned above; "
|
---|
1734 | "the application in the target VM cannot resume the suspended thread "
|
---|
1735 | "through {@link java.lang.Thread#resume}. "
|
---|
1736 | "<p>"
|
---|
1737 | "Note that this doesn't change the status of the thread (see the "
|
---|
1738 | "<a href=\"#JDWP_ThreadReference_Status\">ThreadStatus</a> command.) "
|
---|
1739 | "For example, if it was "
|
---|
1740 | "Running, it will still appear running to other threads. "
|
---|
1741 | (Out
|
---|
1742 | (threadObject thread "The thread object ID. ")
|
---|
1743 | )
|
---|
1744 | (Reply "none"
|
---|
1745 | )
|
---|
1746 | (ErrorSet
|
---|
1747 | (Error INVALID_THREAD)
|
---|
1748 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1749 | (Error VM_DEAD)
|
---|
1750 | )
|
---|
1751 | )
|
---|
1752 | (Command Resume=3
|
---|
1753 | "Resumes the execution of a given thread. If this thread was "
|
---|
1754 | "not previously suspended by the front-end, "
|
---|
1755 | "calling this command has no effect. "
|
---|
1756 | "Otherwise, the count of pending suspends on this thread is "
|
---|
1757 | "decremented. If it is decremented to 0, the thread will "
|
---|
1758 | "continue to execute. "
|
---|
1759 | (Out
|
---|
1760 | (threadObject thread "The thread object ID. ")
|
---|
1761 | )
|
---|
1762 | (Reply "none"
|
---|
1763 | )
|
---|
1764 | (ErrorSet
|
---|
1765 | (Error INVALID_THREAD)
|
---|
1766 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1767 | (Error VM_DEAD)
|
---|
1768 | )
|
---|
1769 | )
|
---|
1770 | (Command Status=4
|
---|
1771 | "Returns the current status of a thread. The thread status "
|
---|
1772 | "reply indicates the thread status the last time it was running. "
|
---|
1773 | "the suspend status provides information on the thread's "
|
---|
1774 | "suspension, if any."
|
---|
1775 | (Out
|
---|
1776 | (threadObject thread "The thread object ID. ")
|
---|
1777 | )
|
---|
1778 | (Reply
|
---|
1779 | (int threadStatus "One of the thread status codes "
|
---|
1780 | "See <a href=\"#JDWP_ThreadStatus\">JDWP.ThreadStatus</a>")
|
---|
1781 | (int suspendStatus "One of the suspend status codes "
|
---|
1782 | "See <a href=\"#JDWP_SuspendStatus\">JDWP.SuspendStatus</a>")
|
---|
1783 | )
|
---|
1784 | (ErrorSet
|
---|
1785 | (Error INVALID_THREAD)
|
---|
1786 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1787 | (Error VM_DEAD)
|
---|
1788 | )
|
---|
1789 | )
|
---|
1790 | (Command ThreadGroup=5
|
---|
1791 | "Returns the thread group that contains a given thread. "
|
---|
1792 | (Out
|
---|
1793 | (threadObject thread "The thread object ID. ")
|
---|
1794 | )
|
---|
1795 | (Reply
|
---|
1796 | (threadGroupObject group "The thread group of this thread. ")
|
---|
1797 | )
|
---|
1798 | (ErrorSet
|
---|
1799 | (Error INVALID_THREAD)
|
---|
1800 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1801 | (Error VM_DEAD)
|
---|
1802 | )
|
---|
1803 | )
|
---|
1804 | (Command Frames=6
|
---|
1805 | "Returns the current call stack of a suspended thread. "
|
---|
1806 | "The sequence of frames starts with "
|
---|
1807 | "the currently executing frame, followed by its caller, "
|
---|
1808 | "and so on. The thread must be suspended, and the returned "
|
---|
1809 | "frameID is valid only while the thread is suspended. "
|
---|
1810 | (Out
|
---|
1811 | (threadObject thread "The thread object ID. ")
|
---|
1812 | (int startFrame "The index of the first frame to retrieve.")
|
---|
1813 | (int length
|
---|
1814 | "The count of frames to retrieve "
|
---|
1815 | "(-1 means all remaining). ")
|
---|
1816 | )
|
---|
1817 | (Reply
|
---|
1818 | (Repeat frames "The number of frames retreived"
|
---|
1819 | (Group Frame
|
---|
1820 | (frame frameID "The ID of this frame. ")
|
---|
1821 | (location location "The current location of this frame")
|
---|
1822 | )
|
---|
1823 | )
|
---|
1824 | )
|
---|
1825 | (ErrorSet
|
---|
1826 | (Error INVALID_THREAD)
|
---|
1827 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1828 | (Error VM_DEAD)
|
---|
1829 | )
|
---|
1830 | )
|
---|
1831 | (Command FrameCount=7
|
---|
1832 | "Returns the count of frames on this thread's stack. "
|
---|
1833 | "The thread must be suspended, and the returned "
|
---|
1834 | "count is valid only while the thread is suspended. "
|
---|
1835 | "Returns JDWP.Error.errorThreadNotSuspended if not suspended. "
|
---|
1836 | (Out
|
---|
1837 | (threadObject thread "The thread object ID. ")
|
---|
1838 | )
|
---|
1839 | (Reply
|
---|
1840 | (int frameCount "The count of frames on this thread's stack. ")
|
---|
1841 | )
|
---|
1842 | (ErrorSet
|
---|
1843 | (Error INVALID_THREAD)
|
---|
1844 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1845 | (Error VM_DEAD)
|
---|
1846 | )
|
---|
1847 | )
|
---|
1848 | (Command OwnedMonitors=8
|
---|
1849 | "Returns the objects whose monitors have been entered by this thread. "
|
---|
1850 | "The thread must be suspended, and the returned information is "
|
---|
1851 | "relevant only while the thread is suspended. "
|
---|
1852 | "Requires canGetOwnedMonitorInfo capability - see "
|
---|
1853 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
1854 | (Out
|
---|
1855 | (threadObject thread "The thread object ID. ")
|
---|
1856 | )
|
---|
1857 | (Reply
|
---|
1858 | (Repeat owned "The number of owned monitors"
|
---|
1859 | (tagged-object monitor "An owned monitor")
|
---|
1860 | )
|
---|
1861 | )
|
---|
1862 | (ErrorSet
|
---|
1863 | (Error INVALID_THREAD)
|
---|
1864 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1865 | (Error NOT_IMPLEMENTED)
|
---|
1866 | (Error VM_DEAD)
|
---|
1867 | )
|
---|
1868 | )
|
---|
1869 | (Command CurrentContendedMonitor=9
|
---|
1870 | "Returns the object, if any, for which this thread is waiting. The "
|
---|
1871 | "thread may be waiting to enter a monitor, or it may be waiting, via "
|
---|
1872 | "the java.lang.Object.wait method, for another thread to invoke the "
|
---|
1873 | "notify method. "
|
---|
1874 | "The thread must be suspended, and the returned information is "
|
---|
1875 | "relevant only while the thread is suspended. "
|
---|
1876 | "Requires canGetCurrentContendedMonitor capability - see "
|
---|
1877 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
1878 | (Out
|
---|
1879 | (threadObject thread "The thread object ID. ")
|
---|
1880 | )
|
---|
1881 | (Reply
|
---|
1882 | (tagged-object monitor "The contended monitor, or null if "
|
---|
1883 | "there is no current contended monitor. ")
|
---|
1884 | )
|
---|
1885 | (ErrorSet
|
---|
1886 | (Error INVALID_THREAD)
|
---|
1887 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1888 | (Error NOT_IMPLEMENTED)
|
---|
1889 | (Error VM_DEAD)
|
---|
1890 | )
|
---|
1891 | )
|
---|
1892 | (Command Stop=10
|
---|
1893 | "Stops the thread with an asynchronous exception, as if done by "
|
---|
1894 | "java.lang.Thread.stop "
|
---|
1895 | (Out
|
---|
1896 | (threadObject thread "The thread object ID. ")
|
---|
1897 | (object throwable "Asynchronous exception. This object must "
|
---|
1898 | "be an instance of java.lang.Throwable or a subclass")
|
---|
1899 | )
|
---|
1900 | (Reply "none"
|
---|
1901 | )
|
---|
1902 | (ErrorSet
|
---|
1903 | (Error INVALID_THREAD)
|
---|
1904 | (Error INVALID_OBJECT "If thread is not a known ID or the asynchronous "
|
---|
1905 | "exception has been garbage collected.")
|
---|
1906 | (Error VM_DEAD)
|
---|
1907 | )
|
---|
1908 | )
|
---|
1909 | (Command Interrupt=11
|
---|
1910 | "Interrupt the thread, as if done by java.lang.Thread.interrupt "
|
---|
1911 | (Out
|
---|
1912 | (threadObject thread "The thread object ID. ")
|
---|
1913 | )
|
---|
1914 | (Reply "none"
|
---|
1915 | )
|
---|
1916 | (ErrorSet
|
---|
1917 | (Error INVALID_THREAD)
|
---|
1918 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1919 | (Error VM_DEAD)
|
---|
1920 | )
|
---|
1921 | )
|
---|
1922 | (Command SuspendCount=12
|
---|
1923 | "Get the suspend count for this thread. The suspend count is the "
|
---|
1924 | "number of times the thread has been suspended through the "
|
---|
1925 | "thread-level or VM-level suspend commands without a corresponding resume "
|
---|
1926 | (Out
|
---|
1927 | (threadObject thread "The thread object ID. ")
|
---|
1928 | )
|
---|
1929 | (Reply
|
---|
1930 | (int suspendCount "The number of outstanding suspends of this thread. ")
|
---|
1931 | )
|
---|
1932 | (ErrorSet
|
---|
1933 | (Error INVALID_THREAD)
|
---|
1934 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1935 | (Error VM_DEAD)
|
---|
1936 | )
|
---|
1937 | )
|
---|
1938 | (Command OwnedMonitorsStackDepthInfo=13
|
---|
1939 | "Returns monitor objects owned by the thread, along with stack depth at which "
|
---|
1940 | "the monitor was acquired. Returns stack depth of -1 if "
|
---|
1941 | "the implementation cannot determine the stack depth "
|
---|
1942 | "(e.g., for monitors acquired by JNI MonitorEnter)."
|
---|
1943 | "The thread must be suspended, and the returned information is "
|
---|
1944 | "relevant only while the thread is suspended. "
|
---|
1945 | "Requires canGetMonitorFrameInfo capability - see "
|
---|
1946 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>. "
|
---|
1947 | "<p>Since JDWP version 1.6. "
|
---|
1948 |
|
---|
1949 | (Out
|
---|
1950 | (threadObject thread "The thread object ID. ")
|
---|
1951 | )
|
---|
1952 | (Reply
|
---|
1953 | (Repeat owned "The number of owned monitors"
|
---|
1954 | (Group monitor
|
---|
1955 | (tagged-object monitor "An owned monitor")
|
---|
1956 | (int stack_depth "Stack depth location where monitor was acquired")
|
---|
1957 | )
|
---|
1958 | )
|
---|
1959 | )
|
---|
1960 | (ErrorSet
|
---|
1961 | (Error INVALID_THREAD)
|
---|
1962 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
1963 | (Error NOT_IMPLEMENTED)
|
---|
1964 | (Error VM_DEAD)
|
---|
1965 | )
|
---|
1966 | )
|
---|
1967 | (Command ForceEarlyReturn=14
|
---|
1968 | "Force a method to return before it reaches a return "
|
---|
1969 | "statement. "
|
---|
1970 | "<p>"
|
---|
1971 | "The method which will return early is referred to as the "
|
---|
1972 | "called method. The called method is the current method (as "
|
---|
1973 | "defined by the Frames section in the Java Virtual Machine "
|
---|
1974 | "Specification) for the specified thread at the time this command "
|
---|
1975 | "is received. "
|
---|
1976 | "<p>"
|
---|
1977 | "The specified thread must be suspended. "
|
---|
1978 | "The return occurs when execution of Java programming "
|
---|
1979 | "language code is resumed on this thread. Between sending this "
|
---|
1980 | "command and resumption of thread execution, the "
|
---|
1981 | "state of the stack is undefined. "
|
---|
1982 | "<p>"
|
---|
1983 | "No further instructions are executed in the called "
|
---|
1984 | "method. Specifically, finally blocks are not executed. Note: "
|
---|
1985 | "this can cause inconsistent states in the application. "
|
---|
1986 | "<p>"
|
---|
1987 | "A lock acquired by calling the called method (if it is a "
|
---|
1988 | "synchronized method) and locks acquired by entering "
|
---|
1989 | "synchronized blocks within the called method are "
|
---|
1990 | "released. Note: this does not apply to JNI locks or "
|
---|
1991 | "java.util.concurrent.locks locks. "
|
---|
1992 | "<p>"
|
---|
1993 | "Events, such as MethodExit, are generated as they would be in "
|
---|
1994 | "a normal return. "
|
---|
1995 | "<p>"
|
---|
1996 | "The called method must be a non-native Java programming "
|
---|
1997 | "language method. Forcing return on a thread with only one "
|
---|
1998 | "frame on the stack causes the thread to exit when resumed. "
|
---|
1999 | "<p>"
|
---|
2000 | "For void methods, the value must be a void value. "
|
---|
2001 | "For methods that return primitive values, the value's type must "
|
---|
2002 | "match the return type exactly. For object values, there must be a "
|
---|
2003 | "widening reference conversion from the value's type to the "
|
---|
2004 | "return type type and the return type must be loaded. "
|
---|
2005 | "<p>"
|
---|
2006 | "Since JDWP version 1.6. Requires canForceEarlyReturn capability - see "
|
---|
2007 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
2008 | (Out
|
---|
2009 | (threadObject thread "The thread object ID. ")
|
---|
2010 | (value value "The value to return. ")
|
---|
2011 | )
|
---|
2012 | (Reply "none"
|
---|
2013 | )
|
---|
2014 | (ErrorSet
|
---|
2015 | (Error INVALID_THREAD)
|
---|
2016 | (Error INVALID_OBJECT "Thread or value is not a known ID.")
|
---|
2017 | (Error THREAD_NOT_SUSPENDED)
|
---|
2018 | (Error THREAD_NOT_ALIVE)
|
---|
2019 | (Error OPAQUE_FRAME "Attempted to return early from "
|
---|
2020 | "a frame corresponding to a native "
|
---|
2021 | "method. Or the implementation is "
|
---|
2022 | "unable to provide this functionality "
|
---|
2023 | "on this frame.")
|
---|
2024 | (Error NO_MORE_FRAMES)
|
---|
2025 | (Error NOT_IMPLEMENTED)
|
---|
2026 | (Error TYPE_MISMATCH "Value is not an appropriate type for the "
|
---|
2027 | "return value of the method.")
|
---|
2028 | (Error VM_DEAD)
|
---|
2029 | )
|
---|
2030 | )
|
---|
2031 |
|
---|
2032 | )
|
---|
2033 | (CommandSet ThreadGroupReference=12
|
---|
2034 | (Command Name=1
|
---|
2035 | "Returns the thread group name. "
|
---|
2036 | (Out
|
---|
2037 | (threadGroupObject group "The thread group object ID. ")
|
---|
2038 | )
|
---|
2039 | (Reply
|
---|
2040 | (string groupName "The thread group's name.")
|
---|
2041 | )
|
---|
2042 | (ErrorSet
|
---|
2043 | (Error INVALID_THREAD_GROUP)
|
---|
2044 | (Error INVALID_OBJECT "group is not a known ID.")
|
---|
2045 | (Error VM_DEAD)
|
---|
2046 | )
|
---|
2047 | )
|
---|
2048 | (Command Parent=2
|
---|
2049 | "Returns the thread group, if any, which contains a given thread group. "
|
---|
2050 | (Out
|
---|
2051 | (threadGroupObject group "The thread group object ID. ")
|
---|
2052 | )
|
---|
2053 | (Reply
|
---|
2054 | (threadGroupObject parentGroup "The parent thread group object, or "
|
---|
2055 | "null if the given thread group "
|
---|
2056 | "is a top-level thread group")
|
---|
2057 | )
|
---|
2058 | (ErrorSet
|
---|
2059 | (Error INVALID_THREAD_GROUP)
|
---|
2060 | (Error INVALID_OBJECT "group is not a known ID.")
|
---|
2061 | (Error VM_DEAD)
|
---|
2062 | )
|
---|
2063 | )
|
---|
2064 | (Command Children=3
|
---|
2065 | "Returns the live threads and active thread groups directly contained "
|
---|
2066 | "in this thread group. Threads and thread groups in child "
|
---|
2067 | "thread groups are not included. "
|
---|
2068 | "A thread is alive if it has been started and has not yet been stopped. "
|
---|
2069 | "See <a href=../../../api/java/lang/ThreadGroup.html>java.lang.ThreadGroup </a>
|
---|
2070 | "for information about active ThreadGroups.
|
---|
2071 | (Out
|
---|
2072 | (threadGroupObject group "The thread group object ID. ")
|
---|
2073 | )
|
---|
2074 | (Reply
|
---|
2075 | (Repeat childThreads "The number of live child threads. "
|
---|
2076 | (threadObject childThread "A direct child thread ID. ")
|
---|
2077 | )
|
---|
2078 | (Repeat childGroups "The number of active child thread groups. "
|
---|
2079 | (threadGroupObject childGroup "A direct child thread group ID. ")
|
---|
2080 | )
|
---|
2081 | )
|
---|
2082 | (ErrorSet
|
---|
2083 | (Error INVALID_THREAD_GROUP)
|
---|
2084 | (Error INVALID_OBJECT "group is not a known ID.")
|
---|
2085 | (Error VM_DEAD)
|
---|
2086 | )
|
---|
2087 | )
|
---|
2088 | )
|
---|
2089 | (CommandSet ArrayReference=13
|
---|
2090 | (Command Length=1
|
---|
2091 | "Returns the number of components in a given array. "
|
---|
2092 | (Out
|
---|
2093 | (arrayObject arrayObject "The array object ID. ")
|
---|
2094 | )
|
---|
2095 | (Reply
|
---|
2096 | (int arrayLength "The length of the array.")
|
---|
2097 | )
|
---|
2098 | (ErrorSet
|
---|
2099 | (Error INVALID_OBJECT "arrayObject is not a known ID.")
|
---|
2100 | (Error INVALID_ARRAY)
|
---|
2101 | (Error VM_DEAD)
|
---|
2102 | )
|
---|
2103 | )
|
---|
2104 | (Command GetValues=2
|
---|
2105 | "Returns a range of array components. The specified range must "
|
---|
2106 | "be within the bounds of the array. "
|
---|
2107 | (Out
|
---|
2108 | (arrayObject arrayObject "The array object ID. ")
|
---|
2109 | (int firstIndex "The first index to retrieve.")
|
---|
2110 | (int length "The number of components to retrieve.")
|
---|
2111 | )
|
---|
2112 | (Reply
|
---|
2113 | (typed-sequence values "The retrieved values. If the values "
|
---|
2114 | "are objects, they are tagged-values; "
|
---|
2115 | "otherwise, they are untagged-values")
|
---|
2116 | )
|
---|
2117 | (ErrorSet
|
---|
2118 | (Error INVALID_LENGTH "If index is beyond the end of this array.")
|
---|
2119 | (Error INVALID_OBJECT "arrayObject is not a known ID.")
|
---|
2120 | (Error INVALID_ARRAY)
|
---|
2121 | (Error VM_DEAD)
|
---|
2122 | )
|
---|
2123 | )
|
---|
2124 | (Command SetValues=3
|
---|
2125 | "Sets a range of array components. The specified range must "
|
---|
2126 | "be within the bounds of the array. "
|
---|
2127 | "For primitive values, each value's type must match the "
|
---|
2128 | "array component type exactly. For object values, there must be a "
|
---|
2129 | "widening reference conversion from the value's type to the
|
---|
2130 | "array component type and the array component type must be loaded. "
|
---|
2131 | (Out
|
---|
2132 | (arrayObject arrayObject "The array object ID. ")
|
---|
2133 | (int firstIndex "The first index to set.")
|
---|
2134 | (Repeat values "The number of values to set. "
|
---|
2135 | (untagged-value value "A value to set. ")
|
---|
2136 | )
|
---|
2137 | )
|
---|
2138 | (Reply "none"
|
---|
2139 | )
|
---|
2140 | (ErrorSet
|
---|
2141 | (Error INVALID_LENGTH "If index is beyond the end of this array.")
|
---|
2142 | (Error INVALID_OBJECT "arrayObject is not a known ID.")
|
---|
2143 | (Error INVALID_ARRAY)
|
---|
2144 | (Error VM_DEAD)
|
---|
2145 | )
|
---|
2146 | )
|
---|
2147 | )
|
---|
2148 | (CommandSet ClassLoaderReference=14
|
---|
2149 | (Command VisibleClasses=1
|
---|
2150 | "Returns a list of all classes which this class loader has "
|
---|
2151 | "been requested to load. This class loader is considered to be "
|
---|
2152 | "an <i>initiating</i> class loader for each class in the returned "
|
---|
2153 | "list. The list contains each "
|
---|
2154 | "reference type defined by this loader and any types for which "
|
---|
2155 | "loading was delegated by this class loader to another class loader. "
|
---|
2156 | "<p>"
|
---|
2157 | "The visible class list has useful properties with respect to "
|
---|
2158 | "the type namespace. A particular type name will occur at most "
|
---|
2159 | "once in the list. Each field or variable declared with that "
|
---|
2160 | "type name in a class defined by "
|
---|
2161 | "this class loader must be resolved to that single type. "
|
---|
2162 | "<p>"
|
---|
2163 | "No ordering of the returned list is guaranteed. "
|
---|
2164 | (Out
|
---|
2165 | (classLoaderObject classLoaderObject "The class loader object ID. ")
|
---|
2166 | )
|
---|
2167 | (Reply
|
---|
2168 | (Repeat classes "The number of visible classes. "
|
---|
2169 | (Group ClassInfo
|
---|
2170 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
2171 | "of following reference type. ")
|
---|
2172 | (referenceTypeID typeID
|
---|
2173 | "A class visible to this class loader.")
|
---|
2174 | )
|
---|
2175 | )
|
---|
2176 | )
|
---|
2177 | (ErrorSet
|
---|
2178 | (Error INVALID_OBJECT)
|
---|
2179 | (Error INVALID_CLASS_LOADER)
|
---|
2180 | (Error VM_DEAD)
|
---|
2181 | )
|
---|
2182 | )
|
---|
2183 | )
|
---|
2184 | (CommandSet EventRequest=15
|
---|
2185 | (Command Set=1
|
---|
2186 | "Set an event request. When the event described by this request "
|
---|
2187 | "occurs, an <a href=\"#JDWP_Event\">event</a> is sent from the "
|
---|
2188 | "target VM. If an event occurs that has not been requested then it is not sent "
|
---|
2189 | "from the target VM. The two exceptions to this are the VM Start Event and "
|
---|
2190 | "the VM Death Event which are automatically generated events - see "
|
---|
2191 | "<a href=\"#JDWP_Event_Composite\">Composite Command</a> for further details."
|
---|
2192 | (Out
|
---|
2193 | (byte eventKind "Event kind to request. "
|
---|
2194 | "See <a href=\"#JDWP_EventKind\">JDWP.EventKind</a> "
|
---|
2195 | "for a complete list of events that can be requested. "
|
---|
2196 | )
|
---|
2197 | (byte suspendPolicy
|
---|
2198 | "What threads are suspended when this event occurs? "
|
---|
2199 | "Note that the order of events and command replies "
|
---|
2200 | "accurately reflects the order in which threads are "
|
---|
2201 | "suspended and resumed. For example, if a "
|
---|
2202 | "<a href=\"#JDWP_VirtualMachine_Resume\">VM-wide resume</a> "
|
---|
2203 | "is processed before an event occurs which suspends the "
|
---|
2204 | "VM, the reply to the resume command will be written to "
|
---|
2205 | "the transport before the suspending event.")
|
---|
2206 | (Repeat modifiers "Constraints used to control the number "
|
---|
2207 | "of generated events."
|
---|
2208 | "Modifiers specify additional tests that "
|
---|
2209 | "an event must satisfy before it is placed "
|
---|
2210 | "in the event queue. Events are filtered by "
|
---|
2211 | "applying each modifier to an event in the "
|
---|
2212 | "order they are specified in this collection "
|
---|
2213 | "Only events that satisfy all modifiers "
|
---|
2214 | "are reported. A value of 0 means there are no "
|
---|
2215 | "modifiers in the request."
|
---|
2216 | "<p>"
|
---|
2217 | "Filtering can improve "
|
---|
2218 | "debugger performance dramatically by
|
---|
2219 | "reducing the "
|
---|
2220 | "amount of event traffic sent from the "
|
---|
2221 | "target VM to the debugger VM. "
|
---|
2222 | (Select Modifier
|
---|
2223 | (byte modKind "Modifier kind")
|
---|
2224 | (Alt Count=1
|
---|
2225 | "Limit the requested event to be reported at most once after a "
|
---|
2226 | "given number of occurrences. The event is not reported "
|
---|
2227 | "the first <code>count - 1</code> times this filter is reached. "
|
---|
2228 | "To request a one-off event, call this method with a count of 1. "
|
---|
2229 | "<p>"
|
---|
2230 | "Once the count reaches 0, any subsequent filters in this request "
|
---|
2231 | "are applied. If none of those filters cause the event to be "
|
---|
2232 | "suppressed, the event is reported. Otherwise, the event is not "
|
---|
2233 | "reported. In either case subsequent events are never reported for "
|
---|
2234 | "this request. "
|
---|
2235 | "This modifier can be used with any event kind."
|
---|
2236 |
|
---|
2237 | (int count "Count before event. One for one-off.")
|
---|
2238 | )
|
---|
2239 | (Alt Conditional=2 "Conditional on expression"
|
---|
2240 | (int exprID "For the future")
|
---|
2241 | )
|
---|
2242 | (Alt ThreadOnly=3
|
---|
2243 | "Restricts reported events to "
|
---|
2244 | "those in the given thread. "
|
---|
2245 | "This modifier can be used with any event kind "
|
---|
2246 | "except for class unload. "
|
---|
2247 |
|
---|
2248 | (threadObject thread "Required thread")
|
---|
2249 | )
|
---|
2250 | (Alt ClassOnly=4
|
---|
2251 | "For class prepare events, restricts the events "
|
---|
2252 | "generated by this request to be the "
|
---|
2253 | "preparation of the given reference type and any subtypes. "
|
---|
2254 | "For monitor wait and waited events, restricts the events "
|
---|
2255 | "generated by this request to those whose monitor object "
|
---|
2256 | "is of the given reference type or any of its subtypes. "
|
---|
2257 | "For other events, restricts the events generated "
|
---|
2258 | "by this request to those "
|
---|
2259 | "whose location is in the given reference type or any of its subtypes. "
|
---|
2260 | "An event will be generated for any location in a reference type that can "
|
---|
2261 | "be safely cast to the given reference type. "
|
---|
2262 | "This modifier can be used with any event kind except "
|
---|
2263 | "class unload, thread start, and thread end. "
|
---|
2264 |
|
---|
2265 | (referenceType clazz "Required class")
|
---|
2266 | )
|
---|
2267 | (Alt ClassMatch=5
|
---|
2268 | "Restricts reported events to those for classes whose name "
|
---|
2269 | "matches the given restricted regular expression. "
|
---|
2270 | "For class prepare events, the prepared class name "
|
---|
2271 | "is matched. For class unload events, the "
|
---|
2272 | "unloaded class name is matched. For monitor wait "
|
---|
2273 | "and waited events, the name of the class of the "
|
---|
2274 | "monitor object is matched. For other events, "
|
---|
2275 | "the class name of the event's location is matched. "
|
---|
2276 | "This modifier can be used with any event kind except "
|
---|
2277 | "thread start and thread end. "
|
---|
2278 |
|
---|
2279 | (string classPattern "Required class pattern. "
|
---|
2280 | "Matches are limited to exact matches of the "
|
---|
2281 | "given class pattern and matches of patterns that "
|
---|
2282 | "begin or end with '*'; for example, "
|
---|
2283 | "\"*.Foo\" or \"java.*\". "
|
---|
2284 | )
|
---|
2285 |
|
---|
2286 | )
|
---|
2287 | (Alt ClassExclude=6
|
---|
2288 | "Restricts reported events to those for classes whose name "
|
---|
2289 | "does not match the given restricted regular expression. "
|
---|
2290 | "For class prepare events, the prepared class name "
|
---|
2291 | "is matched. For class unload events, the "
|
---|
2292 | "unloaded class name is matched. For monitor wait and "
|
---|
2293 | "waited events, the name of the class of the monitor "
|
---|
2294 | "object is matched. For other events, "
|
---|
2295 | "the class name of the event's location is matched. "
|
---|
2296 | "This modifier can be used with any event kind except "
|
---|
2297 | "thread start and thread end. "
|
---|
2298 |
|
---|
2299 | (string classPattern "Disallowed class pattern. "
|
---|
2300 | "Matches are limited to exact matches of the "
|
---|
2301 | "given class pattern and matches of patterns that "
|
---|
2302 | "begin or end with '*'; for example, "
|
---|
2303 | "\"*.Foo\" or \"java.*\". "
|
---|
2304 | )
|
---|
2305 | )
|
---|
2306 | (Alt LocationOnly=7
|
---|
2307 | "Restricts reported events to those that occur at "
|
---|
2308 | "the given location. "
|
---|
2309 | "This modifier can be used with "
|
---|
2310 | "breakpoint, field access, field modification, "
|
---|
2311 | "step, and exception event kinds. "
|
---|
2312 |
|
---|
2313 | (location loc "Required location")
|
---|
2314 | )
|
---|
2315 | (Alt ExceptionOnly=8
|
---|
2316 | "Restricts reported exceptions by their class and "
|
---|
2317 | "whether they are caught or uncaught. "
|
---|
2318 | "This modifier can be used with "
|
---|
2319 | "exception event kinds only. "
|
---|
2320 |
|
---|
2321 | (referenceType exceptionOrNull
|
---|
2322 | "Exception to report. Null (0) means report "
|
---|
2323 | "exceptions of all types. "
|
---|
2324 | "A non-null type restricts the reported exception "
|
---|
2325 | "events to exceptions of the given type or "
|
---|
2326 | "any of its subtypes. "
|
---|
2327 | )
|
---|
2328 | (boolean caught "Report caught exceptions")
|
---|
2329 | (boolean uncaught "Report uncaught exceptions. "
|
---|
2330 | "Note that it "
|
---|
2331 | "is not always possible to determine whether an "
|
---|
2332 | "exception is caught or uncaught at the time it is "
|
---|
2333 | "thrown. See the exception event catch location under "
|
---|
2334 | "<a href=\"#JDWP_Event_Composite\">composite events</a> "
|
---|
2335 | "for more information. "
|
---|
2336 | )
|
---|
2337 |
|
---|
2338 | )
|
---|
2339 | (Alt FieldOnly=9
|
---|
2340 | "Restricts reported events to those that occur for "
|
---|
2341 | "a given field. "
|
---|
2342 | "This modifier can be used with "
|
---|
2343 | "field access and field modification event kinds only. "
|
---|
2344 |
|
---|
2345 | (referenceType declaring "Type in which field is declared.")
|
---|
2346 | (field fieldID "Required field")
|
---|
2347 | )
|
---|
2348 | (Alt Step=10
|
---|
2349 | "Restricts reported step events "
|
---|
2350 | "to those which satisfy "
|
---|
2351 | "depth and size constraints. "
|
---|
2352 | "This modifier can be used with "
|
---|
2353 | "step event kinds only. "
|
---|
2354 |
|
---|
2355 | (threadObject thread "Thread in which to step")
|
---|
2356 | (int size "size of each step. "
|
---|
2357 | "See <a href=\"#JDWP_StepSize\">JDWP.StepSize</a>")
|
---|
2358 | (int depth "relative call stack limit. "
|
---|
2359 | "See <a href=\"#JDWP_StepDepth\">JDWP.StepDepth</a>")
|
---|
2360 | )
|
---|
2361 | (Alt InstanceOnly=11
|
---|
2362 | "Restricts reported events to those whose "
|
---|
2363 | "active 'this' object is the given object. "
|
---|
2364 | "Match value is the null object for static methods. "
|
---|
2365 | "This modifier can be used with any event kind "
|
---|
2366 | "except class prepare, class unload, thread start, "
|
---|
2367 | "and thread end. Introduced in JDWP version 1.4."
|
---|
2368 |
|
---|
2369 | (object instance "Required 'this' object")
|
---|
2370 | )
|
---|
2371 | (Alt SourceNameMatch=12
|
---|
2372 | "Restricts reported class prepare events to those "
|
---|
2373 | "for reference types which have a source name "
|
---|
2374 | "which matches the given restricted regular expression. "
|
---|
2375 | "The source names are determined by the reference type's "
|
---|
2376 | "<a href=\"#JDWP_ReferenceType_SourceDebugExtension\"> "
|
---|
2377 | "SourceDebugExtension</a>. "
|
---|
2378 | "This modifier can only be used with class prepare "
|
---|
2379 | "events. "
|
---|
2380 | "Since JDWP version 1.6. Requires the canUseSourceNameFilters "
|
---|
2381 | "capability - see "
|
---|
2382 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
2383 |
|
---|
2384 | (string sourceNamePattern "Required source name pattern. "
|
---|
2385 | "Matches are limited to exact matches of the "
|
---|
2386 | "given pattern and matches of patterns that "
|
---|
2387 | "begin or end with '*'; for example, "
|
---|
2388 | "\"*.Foo\" or \"java.*\". "
|
---|
2389 | )
|
---|
2390 | )
|
---|
2391 |
|
---|
2392 | )
|
---|
2393 | )
|
---|
2394 | )
|
---|
2395 | (Reply
|
---|
2396 | (int requestID "ID of created request")
|
---|
2397 | )
|
---|
2398 | (ErrorSet
|
---|
2399 | (Error INVALID_THREAD)
|
---|
2400 | (Error INVALID_CLASS)
|
---|
2401 | (Error INVALID_STRING)
|
---|
2402 | (Error INVALID_OBJECT)
|
---|
2403 | (Error INVALID_COUNT)
|
---|
2404 | (Error INVALID_FIELDID)
|
---|
2405 | (Error INVALID_METHODID)
|
---|
2406 | (Error INVALID_LOCATION)
|
---|
2407 | (Error INVALID_EVENT_TYPE)
|
---|
2408 | (Error NOT_IMPLEMENTED)
|
---|
2409 | (Error VM_DEAD)
|
---|
2410 | )
|
---|
2411 | )
|
---|
2412 | (Command Clear=2
|
---|
2413 | "Clear an event request. See <a href=\"#JDWP_EventKind\">JDWP.EventKind</a> "
|
---|
2414 | "for a complete list of events that can be cleared. Only the event request matching "
|
---|
2415 | "the specified event kind and requestID is cleared. If there isn't a matching event "
|
---|
2416 | "request the command is a no-op and does not result in an error. Automatically "
|
---|
2417 | "generated events do not have a corresponding event request and may not be cleared "
|
---|
2418 | "using this command."
|
---|
2419 | (Out
|
---|
2420 | (byte eventKind "Event kind to clear")
|
---|
2421 | (int requestID "ID of request to clear")
|
---|
2422 | )
|
---|
2423 | (Reply "none"
|
---|
2424 | )
|
---|
2425 | (ErrorSet
|
---|
2426 | (Error VM_DEAD)
|
---|
2427 | (Error INVALID_EVENT_TYPE)
|
---|
2428 | )
|
---|
2429 | )
|
---|
2430 | (Command ClearAllBreakpoints=3
|
---|
2431 | "Removes all set breakpoints, a no-op if there are no breakpoints set."
|
---|
2432 | (Out "none"
|
---|
2433 | )
|
---|
2434 | (Reply "none"
|
---|
2435 | )
|
---|
2436 | (ErrorSet
|
---|
2437 | (Error VM_DEAD)
|
---|
2438 | )
|
---|
2439 | )
|
---|
2440 | )
|
---|
2441 | (CommandSet StackFrame=16
|
---|
2442 | (Command GetValues=1
|
---|
2443 | "Returns the value of one or more local variables in a "
|
---|
2444 | "given frame. Each variable must be visible at the frame's code index. "
|
---|
2445 | "Even if local variable information is not available, values can "
|
---|
2446 | "be retrieved if the front-end is able to "
|
---|
2447 | "determine the correct local variable index. (Typically, this "
|
---|
2448 | "index can be determined for method arguments from the method "
|
---|
2449 | "signature without access to the local variable table information.) "
|
---|
2450 | (Out
|
---|
2451 | (threadObject thread "The frame's thread. ")
|
---|
2452 | (frame frame "The frame ID. ")
|
---|
2453 | (Repeat slots "The number of values to get. "
|
---|
2454 | (Group SlotInfo
|
---|
2455 | (int slot "The local variable's index in the frame. ")
|
---|
2456 | (byte sigbyte "A <a href=\"#JDWP_Tag\">tag</a> "
|
---|
2457 | "identifying the type of the variable ")
|
---|
2458 | )
|
---|
2459 | )
|
---|
2460 | )
|
---|
2461 | (Reply
|
---|
2462 | (Repeat values "The number of values retrieved, always equal to slots, "
|
---|
2463 | "the number of values to get."
|
---|
2464 | (value slotValue "The value of the local variable. ")
|
---|
2465 | )
|
---|
2466 | )
|
---|
2467 | (ErrorSet
|
---|
2468 | (Error INVALID_THREAD)
|
---|
2469 | (Error INVALID_OBJECT)
|
---|
2470 | (Error INVALID_FRAMEID)
|
---|
2471 | (Error INVALID_SLOT)
|
---|
2472 | (Error VM_DEAD)
|
---|
2473 | )
|
---|
2474 | )
|
---|
2475 | (Command SetValues=2
|
---|
2476 | "Sets the value of one or more local variables. "
|
---|
2477 | "Each variable must be visible at the current frame code index. "
|
---|
2478 | "For primitive values, the value's type must match the "
|
---|
2479 | "variable's type exactly. For object values, there must be a "
|
---|
2480 | "widening reference conversion from the value's type to the
|
---|
2481 | "variable's type and the variable's type must be loaded. "
|
---|
2482 | "<p>"
|
---|
2483 | "Even if local variable information is not available, values can "
|
---|
2484 | "be set, if the front-end is able to "
|
---|
2485 | "determine the correct local variable index. (Typically, this
|
---|
2486 | "index can be determined for method arguments from the method "
|
---|
2487 | "signature without access to the local variable table information.) "
|
---|
2488 | (Out
|
---|
2489 | (threadObject thread "The frame's thread. ")
|
---|
2490 | (frame frame "The frame ID. ")
|
---|
2491 | (Repeat slotValues "The number of values to set. "
|
---|
2492 | (Group SlotInfo
|
---|
2493 | (int slot "The slot ID. ")
|
---|
2494 | (value slotValue "The value to set. ")
|
---|
2495 | )
|
---|
2496 | )
|
---|
2497 | )
|
---|
2498 | (Reply "none"
|
---|
2499 | )
|
---|
2500 | (ErrorSet
|
---|
2501 | (Error INVALID_THREAD)
|
---|
2502 | (Error INVALID_OBJECT)
|
---|
2503 | (Error INVALID_FRAMEID)
|
---|
2504 | (Error VM_DEAD)
|
---|
2505 | )
|
---|
2506 | )
|
---|
2507 | (Command ThisObject=3
|
---|
2508 | "Returns the value of the 'this' reference for this frame. "
|
---|
2509 | "If the frame's method is static or native, the reply "
|
---|
2510 | "will contain the null object reference. "
|
---|
2511 | (Out
|
---|
2512 | (threadObject thread "The frame's thread. ")
|
---|
2513 | (frame frame "The frame ID. ")
|
---|
2514 | )
|
---|
2515 | (Reply
|
---|
2516 | (tagged-object objectThis "The 'this' object for this frame. ")
|
---|
2517 | )
|
---|
2518 | (ErrorSet
|
---|
2519 | (Error INVALID_THREAD)
|
---|
2520 | (Error INVALID_OBJECT)
|
---|
2521 | (Error INVALID_FRAMEID)
|
---|
2522 | (Error VM_DEAD)
|
---|
2523 | )
|
---|
2524 | )
|
---|
2525 | (Command PopFrames=4
|
---|
2526 | "Pop the top-most stack frames of the thread stack, up to, and including 'frame'. "
|
---|
2527 | "The thread must be suspended to perform this command. "
|
---|
2528 | "The top-most stack frames are discarded and the stack frame previous to 'frame' "
|
---|
2529 | "becomes the current frame. The operand stack is restored -- the argument values "
|
---|
2530 | "are added back and if the invoke was not <code>invokestatic</code>, "
|
---|
2531 | "<code>objectref</code> is added back as well. The Java virtual machine "
|
---|
2532 | "program counter is restored to the opcode of the invoke instruction."
|
---|
2533 | "<p>"
|
---|
2534 | "Since JDWP version 1.4. Requires canPopFrames capability - see "
|
---|
2535 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
2536 | (Out
|
---|
2537 | (threadObject thread "The thread object ID. ")
|
---|
2538 | (frame frame "The frame ID. ")
|
---|
2539 | )
|
---|
2540 | (Reply "none"
|
---|
2541 | )
|
---|
2542 | (ErrorSet
|
---|
2543 | (Error INVALID_THREAD)
|
---|
2544 | (Error INVALID_OBJECT "thread is not a known ID.")
|
---|
2545 | (Error INVALID_FRAMEID)
|
---|
2546 | (Error THREAD_NOT_SUSPENDED)
|
---|
2547 | (Error NO_MORE_FRAMES)
|
---|
2548 | (Error INVALID_FRAMEID)
|
---|
2549 | (Error NOT_IMPLEMENTED)
|
---|
2550 | (Error VM_DEAD)
|
---|
2551 | )
|
---|
2552 | )
|
---|
2553 | )
|
---|
2554 | (CommandSet ClassObjectReference=17
|
---|
2555 | (Command ReflectedType = 1
|
---|
2556 | "Returns the reference type reflected by this class object."
|
---|
2557 | (Out
|
---|
2558 | (classObject classObject "The class object. ")
|
---|
2559 | )
|
---|
2560 | (Reply
|
---|
2561 | (byte refTypeTag "<a href=\"#JDWP_TypeTag\">Kind</a> "
|
---|
2562 | "of following reference type. ")
|
---|
2563 | (referenceTypeID typeID "reflected reference type")
|
---|
2564 | )
|
---|
2565 | (ErrorSet
|
---|
2566 | (Error INVALID_OBJECT)
|
---|
2567 | (Error VM_DEAD)
|
---|
2568 | )
|
---|
2569 | )
|
---|
2570 | )
|
---|
2571 | (CommandSet Event=64
|
---|
2572 | (Command Composite=100
|
---|
2573 | "Several events may occur at a given time in the target VM. "
|
---|
2574 | "For example, there may be more than one breakpoint request "
|
---|
2575 | "for a given location "
|
---|
2576 | "or you might single step to the same location as a "
|
---|
2577 | "breakpoint request. These events are delivered "
|
---|
2578 | "together as a composite event. For uniformity, a "
|
---|
2579 | "composite event is always used "
|
---|
2580 | "to deliver events, even if there is only one event to report. "
|
---|
2581 | "<P>"
|
---|
2582 | "The events that are grouped in a composite event are restricted in the "
|
---|
2583 | "following ways: "
|
---|
2584 | "<P>"
|
---|
2585 | "<UL>"
|
---|
2586 | "<LI>Only with other thread start events for the same thread:"
|
---|
2587 | " <UL>"
|
---|
2588 | " <LI>Thread Start Event"
|
---|
2589 | " </UL>"
|
---|
2590 | "<LI>Only with other thread death events for the same thread:"
|
---|
2591 | " <UL>"
|
---|
2592 | " <LI>Thread Death Event"
|
---|
2593 | " </UL>"
|
---|
2594 | "<LI>Only with other class prepare events for the same class:"
|
---|
2595 | " <UL>"
|
---|
2596 | " <LI>Class Prepare Event"
|
---|
2597 | " </UL>"
|
---|
2598 | "<LI>Only with other class unload events for the same class:"
|
---|
2599 | " <UL>"
|
---|
2600 | " <LI>Class Unload Event"
|
---|
2601 | " </UL>"
|
---|
2602 | "<LI>Only with other access watchpoint events for the same field access:"
|
---|
2603 | " <UL>"
|
---|
2604 | " <LI>Access Watchpoint Event"
|
---|
2605 | " </UL>"
|
---|
2606 | "<LI>Only with other modification watchpoint events for the same field "
|
---|
2607 | "modification:"
|
---|
2608 | " <UL>"
|
---|
2609 | " <LI>Modification Watchpoint Event"
|
---|
2610 | " </UL>"
|
---|
2611 | "<LI>Only with other Monitor contended enter events for the same monitor object: "
|
---|
2612 | " <UL>"
|
---|
2613 | " <LI>Monitor Contended Enter Event"
|
---|
2614 | " </UL>"
|
---|
2615 | "<LI>Only with other Monitor contended entered events for the same monitor object: "
|
---|
2616 | " <UL>"
|
---|
2617 | " <LI>Monitor Contended Entered Event"
|
---|
2618 | " </UL>"
|
---|
2619 | "<LI>Only with other Monitor wait events for the same monitor object: "
|
---|
2620 | " <UL>"
|
---|
2621 | " <LI>Monitor Wait Event"
|
---|
2622 | " </UL>"
|
---|
2623 | "<LI>Only with other Monitor waited events for the same monitor object: "
|
---|
2624 | " <UL>"
|
---|
2625 | " <LI>Monitor Waited Event"
|
---|
2626 | " </UL>"
|
---|
2627 | "<LI>Only with other ExceptionEvents for the same exception occurrance:"
|
---|
2628 | " <UL>"
|
---|
2629 | " <LI>ExceptionEvent"
|
---|
2630 | " </UL>"
|
---|
2631 | "<LI>Only with other members of this group, at the same location "
|
---|
2632 | "and in the same thread: "
|
---|
2633 | " <UL>"
|
---|
2634 | " <LI>Breakpoint Event"
|
---|
2635 | " <LI>Step Event"
|
---|
2636 | " <LI>Method Entry Event"
|
---|
2637 | " <LI>Method Exit Event"
|
---|
2638 | " </UL>"
|
---|
2639 | "</UL>"
|
---|
2640 | "<P>"
|
---|
2641 | "The VM Start Event and VM Death Event are automatically generated events. "
|
---|
2642 | "This means they do not need to be requested using the "
|
---|
2643 | "<a href=\"#JDWP_EventRequest_Set\">EventRequest.Set</a> command. "
|
---|
2644 | "The VM Start event signals the completion of VM initialization. The VM Death "
|
---|
2645 | "event signals the termination of the VM."
|
---|
2646 | "If there is a debugger connected at the time when an automatically generated "
|
---|
2647 | "event occurs it is sent from the target VM. Automatically generated events may "
|
---|
2648 | "also be requested using the EventRequest.Set command and thus multiple events "
|
---|
2649 | "of the same event kind will be sent from the target VM when an event occurs."
|
---|
2650 | "Automatically generated events are sent with the requestID field "
|
---|
2651 | "in the Event Data set to 0. The value of the suspendPolicy field in the "
|
---|
2652 | "Event Data depends on the event. For the automatically generated VM Start "
|
---|
2653 | "Event the value of suspendPolicy is not defined and is therefore implementation "
|
---|
2654 | "or configuration specific. In the Sun implementation, for example, the "
|
---|
2655 | "suspendPolicy is specified as an option to the JDWP agent at launch-time."
|
---|
2656 | "The automatically generated VM Death Event will have the suspendPolicy set to "
|
---|
2657 | "NONE."
|
---|
2658 |
|
---|
2659 | (Event "Generated event"
|
---|
2660 | (byte suspendPolicy
|
---|
2661 | "Which threads where suspended by this composite event?")
|
---|
2662 | (Repeat events "Events in set."
|
---|
2663 | (Select Events
|
---|
2664 | (byte eventKind "Event kind selector")
|
---|
2665 | (Alt VMStart=JDWP.EventKind.VM_START
|
---|
2666 | "Notification of initialization of a target VM. This event is "
|
---|
2667 | "received before the main thread is started and before any "
|
---|
2668 | "application code has been executed. Before this event occurs "
|
---|
2669 | "a significant amount of system code has executed and a number "
|
---|
2670 | "of system classes have been loaded. "
|
---|
2671 | "This event is always generated by the target VM, even "
|
---|
2672 | "if not explicitly requested."
|
---|
2673 |
|
---|
2674 | (int requestID
|
---|
2675 | "Request that generated event (or 0 if this "
|
---|
2676 | "event is automatically generated.")
|
---|
2677 | (threadObject thread "Initial thread")
|
---|
2678 | )
|
---|
2679 | (Alt SingleStep=JDWP.EventKind.SINGLE_STEP
|
---|
2680 | "Notification of step completion in the target VM. The step event "
|
---|
2681 | "is generated before the code at its location is executed. "
|
---|
2682 |
|
---|
2683 | (int requestID "Request that generated event")
|
---|
2684 | (threadObject thread "Stepped thread")
|
---|
2685 | (location location "Location stepped to")
|
---|
2686 | )
|
---|
2687 | (Alt Breakpoint=JDWP.EventKind.BREAKPOINT
|
---|
2688 | "Notification of a breakpoint in the target VM. The breakpoint event "
|
---|
2689 | "is generated before the code at its location is executed. "
|
---|
2690 |
|
---|
2691 | (int requestID "Request that generated event")
|
---|
2692 | (threadObject thread "Thread which hit breakpoint")
|
---|
2693 | (location location "Location hit")
|
---|
2694 | )
|
---|
2695 | (Alt MethodEntry=JDWP.EventKind.METHOD_ENTRY
|
---|
2696 | "Notification of a method invocation in the target VM. This event "
|
---|
2697 | "is generated before any code in the invoked method has executed. "
|
---|
2698 | "Method entry events are generated for both native and non-native "
|
---|
2699 | "methods. "
|
---|
2700 | "<P>"
|
---|
2701 | "In some VMs method entry events can occur for a particular thread "
|
---|
2702 | "before its thread start event occurs if methods are called "
|
---|
2703 | "as part of the thread's initialization. "
|
---|
2704 |
|
---|
2705 | (int requestID "Request that generated event")
|
---|
2706 | (threadObject thread "Thread which entered method")
|
---|
2707 | (location location "The initial executable location in the method.")
|
---|
2708 | )
|
---|
2709 | (Alt MethodExit=JDWP.EventKind.METHOD_EXIT
|
---|
2710 | "Notification of a method return in the target VM. This event "
|
---|
2711 | "is generated after all code in the method has executed, but the "
|
---|
2712 | "location of this event is the last executed location in the method. "
|
---|
2713 | "Method exit events are generated for both native and non-native "
|
---|
2714 | "methods. Method exit events are not generated if the method terminates "
|
---|
2715 | "with a thrown exception. "
|
---|
2716 |
|
---|
2717 | (int requestID "Request that generated event")
|
---|
2718 | (threadObject thread "Thread which exited method")
|
---|
2719 | (location location "Location of exit")
|
---|
2720 | )
|
---|
2721 | (Alt MethodExitWithReturnValue=JDWP.EventKind.METHOD_EXIT_WITH_RETURN_VALUE
|
---|
2722 | "Notification of a method return in the target VM. This event "
|
---|
2723 | "is generated after all code in the method has executed, but the "
|
---|
2724 | "location of this event is the last executed location in the method. "
|
---|
2725 | "Method exit events are generated for both native and non-native "
|
---|
2726 | "methods. Method exit events are not generated if the method terminates "
|
---|
2727 | "with a thrown exception. <p>Since JDWP version 1.6. "
|
---|
2728 |
|
---|
2729 | (int requestID "Request that generated event")
|
---|
2730 | (threadObject thread "Thread which exited method")
|
---|
2731 | (location location "Location of exit")
|
---|
2732 | (value value "Value that will be returned by the method")
|
---|
2733 | )
|
---|
2734 | (Alt MonitorContendedEnter=JDWP.EventKind.MONITOR_CONTENDED_ENTER
|
---|
2735 | "Notification that a thread in the target VM is attempting "
|
---|
2736 | "to enter a monitor that is already acquired by another thread. "
|
---|
2737 | "<p>Since JDWP version 1.6. "
|
---|
2738 |
|
---|
2739 | (int requestID
|
---|
2740 | "Request that generated event")
|
---|
2741 | (threadObject thread "Thread which is trying to enter the monitor")
|
---|
2742 | (tagged-object object "Monitor object reference")
|
---|
2743 | (location location "Location of contended monitor enter")
|
---|
2744 | )
|
---|
2745 | (Alt MonitorContendedEntered=JDWP.EventKind.MONITOR_CONTENDED_ENTERED
|
---|
2746 | "Notification of a thread in the target VM is entering a monitor "
|
---|
2747 | "after waiting for it to be released by another thread. "
|
---|
2748 | "<p>Since JDWP version 1.6. "
|
---|
2749 |
|
---|
2750 | (int requestID
|
---|
2751 | "Request that generated event")
|
---|
2752 | (threadObject thread "Thread which entered monitor")
|
---|
2753 | (tagged-object object "Monitor object reference")
|
---|
2754 | (location location "Location of contended monitor enter")
|
---|
2755 | )
|
---|
2756 | (Alt MonitorWait=JDWP.EventKind.MONITOR_WAIT
|
---|
2757 | "Notification of a thread about to wait on a monitor object. "
|
---|
2758 | "<p>Since JDWP version 1.6. "
|
---|
2759 |
|
---|
2760 | (int requestID
|
---|
2761 | "Request that generated event")
|
---|
2762 | (threadObject thread "Thread which is about to wait")
|
---|
2763 | (tagged-object object "Monitor object reference")
|
---|
2764 | (location location "Location at which the wait will occur")
|
---|
2765 | (long timeout "Thread wait time in milliseconds")
|
---|
2766 | )
|
---|
2767 | (Alt MonitorWaited=JDWP.EventKind.MONITOR_WAITED
|
---|
2768 | "Notification that a thread in the target VM has finished waiting on "
|
---|
2769 | "a monitor object. "
|
---|
2770 | "<p>Since JDWP version 1.6. "
|
---|
2771 |
|
---|
2772 | (int requestID
|
---|
2773 | "Request that generated event")
|
---|
2774 | (threadObject thread "Thread which waited")
|
---|
2775 | (tagged-object object "Monitor object reference")
|
---|
2776 | (location location "Location at which the wait occured")
|
---|
2777 | (boolean timed_out "True if timed out")
|
---|
2778 | )
|
---|
2779 | (Alt Exception=JDWP.EventKind.EXCEPTION
|
---|
2780 | "Notification of an exception in the target VM. "
|
---|
2781 | "If the exception is thrown from a non-native method, "
|
---|
2782 | "the exception event is generated at the location where the "
|
---|
2783 | "exception is thrown. "
|
---|
2784 | "If the exception is thrown from a native method, the exception event "
|
---|
2785 | "is generated at the first non-native location reached after the exception "
|
---|
2786 | "is thrown. "
|
---|
2787 |
|
---|
2788 | (int requestID "Request that generated event")
|
---|
2789 | (threadObject thread "Thread with exception")
|
---|
2790 | (location location "Location of exception throw "
|
---|
2791 | "(or first non-native location after throw if thrown from a native method)")
|
---|
2792 | (tagged-object exception "Thrown exception")
|
---|
2793 | (location catchLocation
|
---|
2794 | "Location of catch, or 0 if not caught. An exception "
|
---|
2795 | "is considered to be caught if, at the point of the throw, the "
|
---|
2796 | "current location is dynamically enclosed in a try statement that "
|
---|
2797 | "handles the exception. (See the JVM specification for details). "
|
---|
2798 | "If there is such a try statement, the catch location is the "
|
---|
2799 | "first location in the appropriate catch clause. "
|
---|
2800 | "<p>"
|
---|
2801 | "If there are native methods in the call stack at the time of the "
|
---|
2802 | "exception, there are important restrictions to note about the "
|
---|
2803 | "returned catch location. In such cases, "
|
---|
2804 | "it is not possible to predict whether an exception will be handled "
|
---|
2805 | "by some native method on the call stack. "
|
---|
2806 | "Thus, it is possible that exceptions considered uncaught "
|
---|
2807 | "here will, in fact, be handled by a native method and not cause "
|
---|
2808 | "termination of the target VM. Furthermore, it cannot be assumed that the "
|
---|
2809 | "catch location returned here will ever be reached by the throwing "
|
---|
2810 | "thread. If there is "
|
---|
2811 | "a native frame between the current location and the catch location, "
|
---|
2812 | "the exception might be handled and cleared in that native method "
|
---|
2813 | "instead. "
|
---|
2814 | "<p>"
|
---|
2815 | "Note that compilers can generate try-catch blocks in some cases "
|
---|
2816 | "where they are not explicit in the source code; for example, "
|
---|
2817 | "the code generated for <code>synchronized</code> and "
|
---|
2818 | "<code>finally</code> blocks can contain implicit try-catch blocks. "
|
---|
2819 | "If such an implicitly generated try-catch is "
|
---|
2820 | "present on the call stack at the time of the throw, the exception "
|
---|
2821 | "will be considered caught even though it appears to be uncaught from "
|
---|
2822 | "examination of the source code. "
|
---|
2823 | )
|
---|
2824 | )
|
---|
2825 | (Alt ThreadStart=JDWP.EventKind.THREAD_START
|
---|
2826 | "Notification of a new running thread in the target VM. "
|
---|
2827 | "The new thread can be the result of a call to "
|
---|
2828 | "<code>java.lang.Thread.start</code> or the result of "
|
---|
2829 | "attaching a new thread to the VM though JNI. The "
|
---|
2830 | "notification is generated by the new thread some time before "
|
---|
2831 | "its execution starts. "
|
---|
2832 | "Because of this timing, it is possible to receive other events "
|
---|
2833 | "for the thread before this event is received. (Notably, "
|
---|
2834 | "Method Entry Events and Method Exit Events might occur "
|
---|
2835 | "during thread initialization. "
|
---|
2836 | "It is also possible for the "
|
---|
2837 | "<a href=\"#JDWP_VirtualMachine_AllThreads\">VirtualMachine AllThreads</a> "
|
---|
2838 | "command to return "
|
---|
2839 | "a thread before its thread start event is received. "
|
---|
2840 | "<p>"
|
---|
2841 | "Note that this event gives no information "
|
---|
2842 | "about the creation of the thread object which may have happened "
|
---|
2843 | "much earlier, depending on the VM being debugged. "
|
---|
2844 |
|
---|
2845 | (int requestID "Request that generated event")
|
---|
2846 | (threadObject thread "Started thread")
|
---|
2847 | )
|
---|
2848 | (Alt ThreadDeath=JDWP.EventKind.THREAD_DEATH
|
---|
2849 | "Notification of a completed thread in the target VM. The "
|
---|
2850 | "notification is generated by the dying thread before it terminates. "
|
---|
2851 | "Because of this timing, it is possible "
|
---|
2852 | "for {@link VirtualMachine#allThreads} to return this thread "
|
---|
2853 | "after this event is received. "
|
---|
2854 | "<p>"
|
---|
2855 | "Note that this event gives no information "
|
---|
2856 | "about the lifetime of the thread object. It may or may not be collected "
|
---|
2857 | "soon depending on what references exist in the target VM. "
|
---|
2858 |
|
---|
2859 | (int requestID "Request that generated event")
|
---|
2860 | (threadObject thread "Ending thread")
|
---|
2861 | )
|
---|
2862 | (Alt ClassPrepare=JDWP.EventKind.CLASS_PREPARE
|
---|
2863 | "Notification of a class prepare in the target VM. See the JVM "
|
---|
2864 | "specification for a definition of class preparation. Class prepare "
|
---|
2865 | "events are not generated for primtiive classes (for example, "
|
---|
2866 | "java.lang.Integer.TYPE). "
|
---|
2867 |
|
---|
2868 | (int requestID "Request that generated event")
|
---|
2869 | (threadObject thread "Preparing thread. "
|
---|
2870 | "In rare cases, this event may occur in a debugger system "
|
---|
2871 | "thread within the target VM. Debugger threads take precautions "
|
---|
2872 | "to prevent these events, but they cannot be avoided under some "
|
---|
2873 | "conditions, especially for some subclasses of "
|
---|
2874 | "java.lang.Error. "
|
---|
2875 | "If the event was generated by a debugger system thread, the "
|
---|
2876 | "value returned by this method is null, and if the requested "
|
---|
2877 | "<a href=\"#JDWP_SuspendPolicy\">suspend policy</a> "
|
---|
2878 | "for the event was EVENT_THREAD "
|
---|
2879 | "all threads will be suspended instead, and the "
|
---|
2880 | "composite event's suspend policy will reflect this change. "
|
---|
2881 | "<p>"
|
---|
2882 | "Note that the discussion above does not apply to system threads "
|
---|
2883 | "created by the target VM during its normal (non-debug) operation. "
|
---|
2884 | )
|
---|
2885 | (byte refTypeTag "Kind of reference type. "
|
---|
2886 | "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
|
---|
2887 | (referenceTypeID typeID "Type being prepared")
|
---|
2888 | (string signature "Type signature")
|
---|
2889 | (int status "Status of type. "
|
---|
2890 | "See <a href=\"#JDWP_ClassStatus\">JDWP.ClassStatus</a>")
|
---|
2891 | )
|
---|
2892 | (Alt ClassUnload=JDWP.EventKind.CLASS_UNLOAD
|
---|
2893 | "Notification of a class unload in the target VM. "
|
---|
2894 | "<p>"
|
---|
2895 | "There are severe constraints on the debugger back-end during "
|
---|
2896 | "garbage collection, so unload information is greatly limited. "
|
---|
2897 |
|
---|
2898 | (int requestID "Request that generated event")
|
---|
2899 | (string signature "Type signature")
|
---|
2900 | )
|
---|
2901 | (Alt FieldAccess=JDWP.EventKind.FIELD_ACCESS
|
---|
2902 | "Notification of a field access in the target VM. "
|
---|
2903 | "Field modifications "
|
---|
2904 | "are not considered field accesses. "
|
---|
2905 | "Requires canWatchFieldAccess capability - see "
|
---|
2906 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
2907 |
|
---|
2908 | (int requestID "Request that generated event")
|
---|
2909 | (threadObject thread "Accessing thread")
|
---|
2910 | (location location "Location of access")
|
---|
2911 | (byte refTypeTag "Kind of reference type. "
|
---|
2912 | "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
|
---|
2913 | (referenceTypeID typeID "Type of field")
|
---|
2914 | (field fieldID "Field being accessed")
|
---|
2915 | (tagged-object object
|
---|
2916 | "Object being accessed (null=0 for statics")
|
---|
2917 | )
|
---|
2918 | (Alt FieldModification=JDWP.EventKind.FIELD_MODIFICATION
|
---|
2919 | "Notification of a field modification in the target VM. "
|
---|
2920 | "Requires canWatchFieldModification capability - see "
|
---|
2921 | "<a href=\"#JDWP_VirtualMachine_CapabilitiesNew\">CapabilitiesNew</a>."
|
---|
2922 |
|
---|
2923 | (int requestID "Request that generated event")
|
---|
2924 | (threadObject thread "Modifying thread")
|
---|
2925 | (location location "Location of modify")
|
---|
2926 | (byte refTypeTag "Kind of reference type. "
|
---|
2927 | "See <a href=\"#JDWP_TypeTag\">JDWP.TypeTag</a>")
|
---|
2928 | (referenceTypeID typeID "Type of field")
|
---|
2929 | (field fieldID "Field being modified")
|
---|
2930 | (tagged-object object
|
---|
2931 | "Object being modified (null=0 for statics")
|
---|
2932 | (value valueToBe "Value to be assigned")
|
---|
2933 | )
|
---|
2934 | (Alt VMDeath=JDWP.EventKind.VM_DEATH
|
---|
2935 | (int requestID
|
---|
2936 | "Request that generated event")
|
---|
2937 | )
|
---|
2938 | )
|
---|
2939 | )
|
---|
2940 | )
|
---|
2941 | )
|
---|
2942 | )
|
---|
2943 | (ConstantSet Error
|
---|
2944 | (Constant NONE =0 "No error has occurred.")
|
---|
2945 | (Constant INVALID_THREAD =10 "Passed thread is null, is not a valid thread or has exited.")
|
---|
2946 | (Constant INVALID_THREAD_GROUP =11 "Thread group invalid.")
|
---|
2947 | (Constant INVALID_PRIORITY =12 "Invalid priority.")
|
---|
2948 | (Constant THREAD_NOT_SUSPENDED =13 "If the specified thread has not been "
|
---|
2949 | "suspended by an event.")
|
---|
2950 | (Constant THREAD_SUSPENDED =14 "Thread already suspended.")
|
---|
2951 | (Constant THREAD_NOT_ALIVE =15 "Thread has not been started or is now dead.")
|
---|
2952 |
|
---|
2953 | (Constant INVALID_OBJECT =20 "If this reference type has been unloaded "
|
---|
2954 | "and garbage collected.")
|
---|
2955 | (Constant INVALID_CLASS =21 "Invalid class.")
|
---|
2956 | (Constant CLASS_NOT_PREPARED =22 "Class has been loaded but not yet prepared.")
|
---|
2957 | (Constant INVALID_METHODID =23 "Invalid method.")
|
---|
2958 | (Constant INVALID_LOCATION =24 "Invalid location.")
|
---|
2959 | (Constant INVALID_FIELDID =25 "Invalid field.")
|
---|
2960 | (Constant INVALID_FRAMEID =30 "Invalid jframeID.")
|
---|
2961 | (Constant NO_MORE_FRAMES =31 "There are no more Java or JNI frames on the "
|
---|
2962 | "call stack.")
|
---|
2963 | (Constant OPAQUE_FRAME =32 "Information about the frame is not available.")
|
---|
2964 | (Constant NOT_CURRENT_FRAME =33 "Operation can only be performed on current frame.")
|
---|
2965 | (Constant TYPE_MISMATCH =34 "The variable is not an appropriate type for "
|
---|
2966 | "the function used.")
|
---|
2967 | (Constant INVALID_SLOT =35 "Invalid slot.")
|
---|
2968 | (Constant DUPLICATE =40 "Item already set.")
|
---|
2969 | (Constant NOT_FOUND =41 "Desired element not found.")
|
---|
2970 | (Constant INVALID_MONITOR =50 "Invalid monitor.")
|
---|
2971 | (Constant NOT_MONITOR_OWNER =51 "This thread doesn't own the monitor.")
|
---|
2972 | (Constant INTERRUPT =52 "The call has been interrupted before completion.")
|
---|
2973 | (Constant INVALID_CLASS_FORMAT =60 "The virtual machine attempted to read a class "
|
---|
2974 | "file and determined that the file is malformed "
|
---|
2975 | "or otherwise cannot be interpreted as a class file.")
|
---|
2976 | (Constant CIRCULAR_CLASS_DEFINITION
|
---|
2977 | =61 "A circularity has been detected while "
|
---|
2978 | "initializing a class.")
|
---|
2979 | (Constant FAILS_VERIFICATION =62 "The verifier detected that a class file, "
|
---|
2980 | "though well formed, contained some sort of "
|
---|
2981 | "internal inconsistency or security problem.")
|
---|
2982 | (Constant ADD_METHOD_NOT_IMPLEMENTED
|
---|
2983 | =63 "Adding methods has not been implemented.")
|
---|
2984 | (Constant SCHEMA_CHANGE_NOT_IMPLEMENTED
|
---|
2985 | =64 "Schema change has not been implemented.")
|
---|
2986 | (Constant INVALID_TYPESTATE =65 "The state of the thread has been modified, "
|
---|
2987 | "and is now inconsistent.")
|
---|
2988 | (Constant HIERARCHY_CHANGE_NOT_IMPLEMENTED
|
---|
2989 | =66 "A direct superclass is different for the new class "
|
---|
2990 | "version, or the set of directly implemented "
|
---|
2991 | "interfaces is different "
|
---|
2992 | "and canUnrestrictedlyRedefineClasses is false.")
|
---|
2993 | (Constant DELETE_METHOD_NOT_IMPLEMENTED
|
---|
2994 | =67 "The new class version does not declare a method "
|
---|
2995 | "declared in the old class version "
|
---|
2996 | "and canUnrestrictedlyRedefineClasses is false.")
|
---|
2997 | (Constant UNSUPPORTED_VERSION =68 "A class file has a version number not supported "
|
---|
2998 | "by this VM.")
|
---|
2999 | (Constant NAMES_DONT_MATCH =69 "The class name defined in the new class file is "
|
---|
3000 | "different from the name in the old class object.")
|
---|
3001 | (Constant CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED
|
---|
3002 | =70 "The new class version has different modifiers and "
|
---|
3003 | "and canUnrestrictedlyRedefineClasses is false.")
|
---|
3004 | (Constant METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED
|
---|
3005 | =71 "A method in the new class version has "
|
---|
3006 | "different modifiers "
|
---|
3007 | "than its counterpart in the old class version and "
|
---|
3008 | "and canUnrestrictedlyRedefineClasses is false.")
|
---|
3009 | (Constant NOT_IMPLEMENTED =99 "The functionality is not implemented in "
|
---|
3010 | "this virtual machine.")
|
---|
3011 | (Constant NULL_POINTER =100 "Invalid pointer.")
|
---|
3012 | (Constant ABSENT_INFORMATION =101 "Desired information is not available.")
|
---|
3013 | (Constant INVALID_EVENT_TYPE =102 "The specified event type id is not recognized.")
|
---|
3014 | (Constant ILLEGAL_ARGUMENT =103 "Illegal argument.")
|
---|
3015 | (Constant OUT_OF_MEMORY =110 "The function needed to allocate memory and "
|
---|
3016 | "no more memory was available for allocation.")
|
---|
3017 | (Constant ACCESS_DENIED =111 "Debugging has not been enabled in this "
|
---|
3018 | "virtual machine. JVMTI cannot be used.")
|
---|
3019 | (Constant VM_DEAD =112 "The virtual machine is not running.")
|
---|
3020 | (Constant INTERNAL =113 "An unexpected internal error has occurred.")
|
---|
3021 | (Constant UNATTACHED_THREAD =115 "The thread being used to call this function "
|
---|
3022 | "is not attached to the virtual machine. "
|
---|
3023 | "Calls must be made from attached threads.")
|
---|
3024 | (Constant INVALID_TAG =500 "object type id or class tag.")
|
---|
3025 | (Constant ALREADY_INVOKING =502 "Previous invoke not complete.")
|
---|
3026 | (Constant INVALID_INDEX =503 "Index is invalid.")
|
---|
3027 | (Constant INVALID_LENGTH =504 "The length is invalid.")
|
---|
3028 | (Constant INVALID_STRING =506 "The string is invalid.")
|
---|
3029 | (Constant INVALID_CLASS_LOADER =507 "The class loader is invalid.")
|
---|
3030 | (Constant INVALID_ARRAY =508 "The array is invalid.")
|
---|
3031 | (Constant TRANSPORT_LOAD =509 "Unable to load the transport.")
|
---|
3032 | (Constant TRANSPORT_INIT =510 "Unable to initialize the transport.")
|
---|
3033 | (Constant NATIVE_METHOD =511 )
|
---|
3034 | (Constant INVALID_COUNT =512 "The count is invalid.")
|
---|
3035 | )
|
---|
3036 | (ConstantSet EventKind
|
---|
3037 | (Constant SINGLE_STEP =1 )
|
---|
3038 | (Constant BREAKPOINT =2 )
|
---|
3039 | (Constant FRAME_POP =3 )
|
---|
3040 | (Constant EXCEPTION =4 )
|
---|
3041 | (Constant USER_DEFINED =5 )
|
---|
3042 | (Constant THREAD_START =6 )
|
---|
3043 | (Constant THREAD_DEATH =7 )
|
---|
3044 | (Constant THREAD_END =7 "obsolete - was used in jvmdi")
|
---|
3045 | (Constant CLASS_PREPARE =8 )
|
---|
3046 | (Constant CLASS_UNLOAD =9 )
|
---|
3047 | (Constant CLASS_LOAD =10 )
|
---|
3048 | (Constant FIELD_ACCESS =20 )
|
---|
3049 | (Constant FIELD_MODIFICATION =21 )
|
---|
3050 | (Constant EXCEPTION_CATCH =30 )
|
---|
3051 | (Constant METHOD_ENTRY =40 )
|
---|
3052 | (Constant METHOD_EXIT =41 )
|
---|
3053 | (Constant METHOD_EXIT_WITH_RETURN_VALUE =42 )
|
---|
3054 | (Constant MONITOR_CONTENDED_ENTER =43 )
|
---|
3055 | (Constant MONITOR_CONTENDED_ENTERED =44 )
|
---|
3056 | (Constant MONITOR_WAIT =45 )
|
---|
3057 | (Constant MONITOR_WAITED =46 )
|
---|
3058 | (Constant VM_START =90 )
|
---|
3059 | (Constant VM_INIT =90 "obsolete - was used in jvmdi")
|
---|
3060 | (Constant VM_DEATH =99 )
|
---|
3061 | (Constant VM_DISCONNECTED =100 "Never sent across JDWP")
|
---|
3062 | )
|
---|
3063 |
|
---|
3064 | (ConstantSet ThreadStatus
|
---|
3065 | (Constant ZOMBIE =0 )
|
---|
3066 | (Constant RUNNING =1 )
|
---|
3067 | (Constant SLEEPING =2 )
|
---|
3068 | (Constant MONITOR =3 )
|
---|
3069 | (Constant WAIT =4 )
|
---|
3070 | )
|
---|
3071 |
|
---|
3072 | (ConstantSet SuspendStatus
|
---|
3073 | (Constant SUSPEND_STATUS_SUSPENDED = 0x1 )
|
---|
3074 | )
|
---|
3075 | (ConstantSet ClassStatus
|
---|
3076 | (Constant VERIFIED =1 )
|
---|
3077 | (Constant PREPARED =2 )
|
---|
3078 | (Constant INITIALIZED =4 )
|
---|
3079 | (Constant ERROR =8 )
|
---|
3080 | )
|
---|
3081 | (ConstantSet TypeTag
|
---|
3082 | (Constant CLASS=1 "ReferenceType is a class. ")
|
---|
3083 | (Constant INTERFACE=2 "ReferenceType is an interface. ")
|
---|
3084 | (Constant ARRAY=3 "ReferenceType is an array. ")
|
---|
3085 | )
|
---|
3086 | (ConstantSet Tag
|
---|
3087 | (Constant ARRAY = '[' "'[' - an array object (objectID size). ")
|
---|
3088 | (Constant BYTE = 'B' "'B' - a byte value (1 byte).")
|
---|
3089 | (Constant CHAR = 'C' "'C' - a character value (2 bytes).")
|
---|
3090 | (Constant OBJECT = 'L' "'L' - an object (objectID size).")
|
---|
3091 | (Constant FLOAT = 'F' "'F' - a float value (4 bytes).")
|
---|
3092 | (Constant DOUBLE = 'D' "'D' - a double value (8 bytes).")
|
---|
3093 | (Constant INT = 'I' "'I' - an int value (4 bytes).")
|
---|
3094 | (Constant LONG = 'J' "'J' - a long value (8 bytes).")
|
---|
3095 | (Constant SHORT = 'S' "'S' - a short value (2 bytes).")
|
---|
3096 | (Constant VOID = 'V' "'V' - a void value (no bytes).")
|
---|
3097 | (Constant BOOLEAN = 'Z' "'Z' - a boolean value (1 byte).")
|
---|
3098 | (Constant STRING = 's' "'s' - a String object (objectID size). ")
|
---|
3099 | (Constant THREAD = 't' "'t' - a Thread object (objectID size). ")
|
---|
3100 | (Constant THREAD_GROUP = 'g'
|
---|
3101 | "'g' - a ThreadGroup object (objectID size). ")
|
---|
3102 | (Constant CLASS_LOADER = 'l'
|
---|
3103 | "'l' - a ClassLoader object (objectID size). ")
|
---|
3104 | (Constant CLASS_OBJECT = 'c'
|
---|
3105 | "'c' - a class object object (objectID size). ")
|
---|
3106 | )
|
---|
3107 |
|
---|
3108 | (ConstantSet StepDepth
|
---|
3109 | (Constant INTO = 0
|
---|
3110 | "Step into any method calls that occur before the end of the step. ")
|
---|
3111 | (Constant OVER = 1
|
---|
3112 | "Step over any method calls that occur before the end of the step. ")
|
---|
3113 | (Constant OUT = 2
|
---|
3114 | "Step out of the current method. ")
|
---|
3115 | )
|
---|
3116 |
|
---|
3117 | (ConstantSet StepSize
|
---|
3118 | (Constant MIN = 0
|
---|
3119 | "Step by the minimum possible amount (often a bytecode instruction). ")
|
---|
3120 | (Constant LINE = 1
|
---|
3121 | "Step to the next source line unless there is no line number information in which case a MIN step is done instead.")
|
---|
3122 | )
|
---|
3123 |
|
---|
3124 | (ConstantSet SuspendPolicy
|
---|
3125 | (Constant NONE = 0
|
---|
3126 | "Suspend no threads when this event is encountered. ")
|
---|
3127 | (Constant EVENT_THREAD = 1
|
---|
3128 | "Suspend the event thread when this event is encountered. ")
|
---|
3129 | (Constant ALL = 2
|
---|
3130 | "Suspend all threads when this event is encountered. ")
|
---|
3131 | )
|
---|
3132 |
|
---|
3133 | (ConstantSet InvokeOptions
|
---|
3134 | "The invoke options are a combination of zero or more of the following bit flags:"
|
---|
3135 | (Constant INVOKE_SINGLE_THREADED = 0x01
|
---|
3136 | "otherwise, all threads started. ")
|
---|
3137 | (Constant INVOKE_NONVIRTUAL = 0x02
|
---|
3138 | "otherwise, normal virtual invoke (instance methods only)")
|
---|
3139 | )
|
---|
3140 |
|
---|
3141 |
|
---|