/** Finishes debugger. */
  public void finishDebugger() throws DebuggerException {
    threadGroup.setRemoteThreadGroup(null);
    if (remoteDebugger != null) {
      remoteDebugger.close();
      remoteDebugger = null;
    }
    if (process != null) process.destroy();
    if (debuggerThread != null) {
      debuggerThread.interrupt();
      debuggerThread.stop();
    }

    super.finishDebugger();

    synchronizer = null;
  }