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 |