< prev index next >

src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java

Print this page




 200      * Not all target virtual machines support this operation.
 201      * Use {@link VirtualMachine#canRequestMonitorEvents()}
 202      * to determine if the operation is supported.
 203      *
 204      * @return the created {@link MonitorWaitedRequest}
 205      * @throws java.lang.UnsupportedOperationException if
 206      * the target VM does not support this
 207      * operation.
 208      *
 209      * @since 1.6
 210      */
 211     MonitorWaitedRequest createMonitorWaitedRequest();
 212 
 213     /**
 214      * Creates a new disabled {@link StepRequest}.
 215      * The new event request is added to the list managed by this
 216      * EventRequestManager. Use {@link EventRequest#enable()} to
 217      * activate this event request.
 218      * <p>
 219      * The returned request will control stepping only in the specified
 220      * <code>thread</code>; all other threads will be unaffected.
 221      * A <code>size</code>value of {@link com.sun.jdi.request.StepRequest#STEP_MIN} will generate a
 222      * step event each time the code index changes. It represents the
 223      * smallest step size available and often maps to the instruction
 224      * level.
 225      * A <code>size</code> value of {@link com.sun.jdi.request.StepRequest#STEP_LINE} will generate a
 226      * step event each time the source line changes unless line number information is not available,
 227      * in which case a STEP_MIN will be done instead.  For example, no line number information is
 228      * available during the execution of a method that has been rendered obsolete by
 229      * by a {@link com.sun.jdi.VirtualMachine#redefineClasses} operation.
 230      * A <code>depth</code> value of {@link com.sun.jdi.request.StepRequest#STEP_INTO} will generate
 231      * step events in any called methods.  A <code>depth</code> value
 232      * of {@link com.sun.jdi.request.StepRequest#STEP_OVER} restricts step events to the current frame
 233      * or caller frames. A <code>depth</code> value of {@link com.sun.jdi.request.StepRequest#STEP_OUT}
 234      * restricts step events to caller frames only. All depth
 235      * restrictions are relative to the call stack immediately before the
 236      * step takes place.
 237      * <p>
 238      * Only one pending step request is allowed per thread.
 239      * <p>
 240      * Note that a typical debugger will want to cancel stepping
 241      * after the first step is detected.  Thus a next line method
 242      * would do the following:
 243      * <code>
 244      * <pre>
 245      *     EventRequestManager mgr = myVM.{@link VirtualMachine#eventRequestManager eventRequestManager}();
 246      *     StepRequest request = mgr.createStepRequest(myThread,
 247      *                                                 StepRequest.{@link StepRequest#STEP_LINE STEP_LINE},
 248      *                                                 StepRequest.{@link StepRequest#STEP_OVER STEP_OVER});
 249      *     request.{@link EventRequest#addCountFilter addCountFilter}(1);  // next step only
 250      *     request.enable();
 251      *     myVM.{@link VirtualMachine#resume resume}();
 252      * </pre>
 253      * </code>
 254      *
 255      * @param thread the thread in which to step
 256      * @param depth the step depth
 257      * @param size the step size
 258      * @return the created {@link StepRequest}
 259      * @throws DuplicateRequestException if there is already a pending
 260      * step request for the specified thread.
 261      * @throws IllegalArgumentException if the size or depth arguments
 262      * contain illegal values.
 263      */
 264     StepRequest createStepRequest(ThreadReference thread,
 265                                   int size,
 266                                   int depth);
 267 
 268     /**
 269      * Creates a new disabled {@link BreakpointRequest}.
 270      * The given {@link Location} must have a valid
 271      * (that is, non-negative) code index. The new
 272      * breakpoint is added to the list managed by this
 273      * EventRequestManager. Multiple breakpoints at the




 200      * Not all target virtual machines support this operation.
 201      * Use {@link VirtualMachine#canRequestMonitorEvents()}
 202      * to determine if the operation is supported.
 203      *
 204      * @return the created {@link MonitorWaitedRequest}
 205      * @throws java.lang.UnsupportedOperationException if
 206      * the target VM does not support this
 207      * operation.
 208      *
 209      * @since 1.6
 210      */
 211     MonitorWaitedRequest createMonitorWaitedRequest();
 212 
 213     /**
 214      * Creates a new disabled {@link StepRequest}.
 215      * The new event request is added to the list managed by this
 216      * EventRequestManager. Use {@link EventRequest#enable()} to
 217      * activate this event request.
 218      * <p>
 219      * The returned request will control stepping only in the specified
 220      * {@code thread}; all other threads will be unaffected.
 221      * A {@code size} value of {@link com.sun.jdi.request.StepRequest#STEP_MIN} will generate a
 222      * step event each time the code index changes. It represents the
 223      * smallest step size available and often maps to the instruction
 224      * level.
 225      * A {@code size} value of {@link com.sun.jdi.request.StepRequest#STEP_LINE} will generate a
 226      * step event each time the source line changes unless line number information is not available,
 227      * in which case a STEP_MIN will be done instead.  For example, no line number information is
 228      * available during the execution of a method that has been rendered obsolete by
 229      * by a {@link com.sun.jdi.VirtualMachine#redefineClasses} operation.
 230      * A {@code depth} value of {@link com.sun.jdi.request.StepRequest#STEP_INTO} will generate
 231      * step events in any called methods.  A {@code depth} value
 232      * of {@link com.sun.jdi.request.StepRequest#STEP_OVER} restricts step events to the current frame
 233      * or caller frames. A {@code depth} value of {@link com.sun.jdi.request.StepRequest#STEP_OUT}
 234      * restricts step events to caller frames only. All depth
 235      * restrictions are relative to the call stack immediately before the
 236      * step takes place.
 237      * <p>
 238      * Only one pending step request is allowed per thread.
 239      * <p>
 240      * Note that a typical debugger will want to cancel stepping
 241      * after the first step is detected.  Thus a next line method
 242      * would do the following:
 243      * <pre>{@code

 244      *     EventRequestManager mgr = myVM.{@link VirtualMachine#eventRequestManager eventRequestManager}();
 245      *     StepRequest request = mgr.createStepRequest(myThread,
 246      *                                                 StepRequest.{@link StepRequest#STEP_LINE STEP_LINE},
 247      *                                                 StepRequest.{@link StepRequest#STEP_OVER STEP_OVER});
 248      *     request.{@link EventRequest#addCountFilter addCountFilter}(1);  // next step only
 249      *     request.enable();
 250      *     myVM.{@link VirtualMachine#resume resume}();
 251      * }</pre>

 252      *
 253      * @param thread the thread in which to step
 254      * @param depth the step depth
 255      * @param size the step size
 256      * @return the created {@link StepRequest}
 257      * @throws DuplicateRequestException if there is already a pending
 258      * step request for the specified thread.
 259      * @throws IllegalArgumentException if the size or depth arguments
 260      * contain illegal values.
 261      */
 262     StepRequest createStepRequest(ThreadReference thread,
 263                                   int size,
 264                                   int depth);
 265 
 266     /**
 267      * Creates a new disabled {@link BreakpointRequest}.
 268      * The given {@link Location} must have a valid
 269      * (that is, non-negative) code index. The new
 270      * breakpoint is added to the list managed by this
 271      * EventRequestManager. Multiple breakpoints at the


< prev index next >