public void close() { // TODO make sure stop() has already been called to exit the sketch // TODO actually kill off the vm here if (vm != null) { try { vm.exit(0); } catch (com.sun.jdi.VMDisconnectedException vmde) { // if the vm has disconnected on its own, ignore message // System.out.println("harmless disconnect " + vmde.getMessage()); // TODO shouldn't need to do this, need to do more cleanup } vm = null; } }
/** Finishes debugger. */ public void finishDebugger() throws DebuggerException { if (breakpointMain != null) { for (int x = 0; x < breakpointMain.length; x++) breakpointMain[x].remove(); breakpointMain = null; } try { if (virtualMachine != null) virtualMachine.exit(0); } catch (VMDisconnectedException e) { } if (threadManager != null) threadManager.finish(); if (debuggerThread != null) { debuggerThread.interrupt(); debuggerThread.stop(); } super.finishDebugger(); }