/** Second part of debugger start procedure. */ private void startDebugger() { threadManager = new ThreadManager(this); setBreakpoints(); updateWatches(); println(bundle.getString("CTL_Debugger_running"), STL_OUT); setDebuggerState(DEBUGGER_RUNNING); virtualMachine.resume(); // start refresh thread ................................................. if (debuggerThread != null) debuggerThread.stop(); debuggerThread = new Thread( new Runnable() { public void run() { for (; ; ) { try { Thread.sleep(5000); } catch (InterruptedException ex) { } if (getState() == DEBUGGER_RUNNING) threadGroup.refresh(); } } }, "Debugger refresh thread"); // NOI18N debuggerThread.setPriority(Thread.MIN_PRIORITY); debuggerThread.start(); }
/** Go. */ public synchronized void go() throws DebuggerException { if (virtualMachine == null) return; setLastAction(ACTION_GO); removeStepRequest(); virtualMachine.resume(); threadGroup.refresh(); super.go(); }
/** Step out. */ public synchronized void stepOut() throws DebuggerException { if (virtualMachine == null) return; removeStepRequest(); try { setLastAction(ACTION_STEP_OUT); stepRequest = requestManager.createStepRequest( currentThread.getThreadReference(), StepRequest.STEP_LINE, StepRequest.STEP_OUT); stepRequest.addCountFilter(1); stepRequest.setSuspendPolicy(EventRequest.SUSPEND_ALL); operator.register(stepRequest, this); stepRequest.enable(); virtualMachine.resume(); super.stepOut(); } catch (DuplicateRequestException e) { e.printStackTrace(); } }
public void resume() { DebuggerManagerThreadImpl.assertIsManagerThread(); if (myPausePressedCount > 0) { myPausePressedCount--; } clearCaches(); LOG.debug("before resume VM"); try { myVirtualMachine.resume(); } catch (InternalException e) { // ok to ignore. Although documentation says it is safe to invoke resume() on running VM, // sometimes this leads to com.sun.jdi.InternalException: Unexpected JDWP Error: 13 // (THREAD_NOT_SUSPENDED) LOG.info(e); } LOG.debug("VM resumed"); // logThreads(); }
@Override public void resume() { virtualMachine.resume(); }