1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
   2 <html>
   3   <head>
   4     <title>Java&trade; Debug Interface</title>
   5   </head>
   6   <body>
   7         The Java&trade; Debug Interface (JDI) is a high level Java
   8 API providing information useful for debuggers and similar
   9 systems needing access to the running state of a (usually remote)
  10 virtual machine.
  11 <p>
  12         The JDI provides introspective
  13 access to a running virtual machine's state, Class, Array,
  14 Interface, and primitive types, and instances of those
  15 types.
  16 <P>
  17 The JDI also provides explicit control over
  18 a virtual machine's execution. The ability to suspend
  19 and resume threads, and to set breakpoints, watchpoints, ...
  20 Notification
  21 of exceptions, class loading, thread creation...
  22 The ability to inspect a suspended thread's state,
  23 local variables, stack backtrace...
  24 <p>
  25 JDI is the highest-layer of the Java Platform Debugger Architecture (JPDA).
  26 For more information on the Java Platform Debugger Architecture, see the
  27 <a href="{@docRoot}/../../../../technotes/guides/jpda/index.html">
  28 Java Platform Debugger Architecture documentation</a>
  29 for this release and the
  30 <a href="http://java.sun.com/products/jpda">Java Platform Debugger Architecture website</a>.
  31 <p>
  32 <font size="+1"><b>Global Exceptions:</b></font>
  33 <p>
  34 This section documents exceptions which apply to the entire API and are thus
  35 not documented on individual methods.
  36 
  37     <blockquote>
  38         <p>
  39         <b>{@link com.sun.jdi.VMMismatchException}</b>
  40         <p>
  41             Any method on a {@link com.sun.jdi.Mirror} that takes a <code>Mirror</code> as an
  42             parameter directly or indirectly (e.g., as a element in a <code>List</code>) will
  43             throw {@link com.sun.jdi.VMMismatchException} if the mirrors are from different
  44             virtual machines.
  45         <p>
  46         <b>{@link java.lang.NullPointerException}</b>
  47         <p>
  48             Any method which takes a {@link java.lang.Object} as an parameter will throw
  49             {@link java.lang.NullPointerException} if null is passed directly or indirectly
  50             -- unless null is explicitly mentioned as a valid parameter.
  51     </blockquote>
  52      NOTE: The exceptions below may be thrown whenever the specified
  53      conditions are met but a guarantee that they are thrown only
  54      exists when a valid result cannot be returned.
  55     <blockquote>
  56         <p>
  57         <b>{@link com.sun.jdi.VMDisconnectedException}</b>
  58         <p>
  59             Any method on {@link com.sun.jdi.ObjectReference}, {@link com.sun.jdi.ReferenceType},
  60             {@link com.sun.jdi.request.EventRequest}, {@link com.sun.jdi.StackFrame}, or
  61             {@link com.sun.jdi.VirtualMachine} or which takes one of these directly or indirectly
  62             as an parameter may throw {@link com.sun.jdi.VMDisconnectedException} if the target VM
  63             is disconnected and the {@link com.sun.jdi.event.VMDisconnectEvent} has been or is available
  64             to be read from the {@link com.sun.jdi.event.EventQueue}.
  65         <p>
  66         <b>{@link com.sun.jdi.VMOutOfMemoryException}</b>
  67         <p>
  68             Any method on {@link com.sun.jdi.ObjectReference}, {@link com.sun.jdi.ReferenceType},
  69             {@link com.sun.jdi.request.EventRequest}, {@link com.sun.jdi.StackFrame}, or
  70             {@link com.sun.jdi.VirtualMachine} or which takes one of these directly or indirectly
  71             as an parameter may throw {@link com.sun.jdi.VMOutOfMemoryException} if the target
  72             VM has run out of memory.
  73         <p>
  74         <b>{@link com.sun.jdi.ObjectCollectedException}</b>
  75         <p>
  76             Any method on {@link com.sun.jdi.ObjectReference} or which directly or indirectly takes
  77             <code>ObjectReference</code> as parameter may throw {@link com.sun.jdi.ObjectCollectedException}
  78             if the mirrored object has been garbage collected.
  79         <p>
  80             Any method on {@link com.sun.jdi.ReferenceType} or which directly or indirectly takes
  81             <code>ReferenceType</code> as parameter may throw {@link com.sun.jdi.ObjectCollectedException}
  82             if the mirrored type has been unloaded.
  83 
  84     </blockquote>
  85   </body>
  86 </html>