@Override public void disconnect() { for (ProcessDebugger d : allDebuggers()) { d.disconnect(); } disposeAcceptor(); }
@Override public void setBreakpoint( String typeId, String file, int line, String condition, String logExpression) { for (ProcessDebugger d : allDebuggers()) { d.setBreakpoint(typeId, file, line, condition, logExpression); } }
@Override public void setBreakpointWithFuncName( @NotNull String typeId, @NotNull String file, int line, @Nullable String condition, @Nullable String logExpression, @Nullable String funcName) { for (ProcessDebugger d : allDebuggers()) { d.setBreakpointWithFuncName(typeId, file, line, condition, logExpression, funcName); } }
@Override public void close() { for (ProcessDebugger d : allDebuggers()) { d.close(); } disposeAcceptor(); if (!myServerSocket.isClosed()) { try { myServerSocket.close(); } catch (IOException e) { LOG.warn("Error closing socket", e); } } }
@NotNull private ProcessDebugger debugger(@NotNull String threadId) { ProcessDebugger debugger = myThreadRegistry.getDebugger(threadId); if (debugger != null) { return debugger; } else { // thread is not found in registry - lets search for it in attached debuggers for (ProcessDebugger d : myOtherDebuggers) { for (PyThreadInfo thread : d.getThreads()) { if (threadId.equals(thread.getId())) { return d; } } } // if not found then return main debugger return myMainDebugger; } }
@Override public void removeBreakpoint(@NotNull String typeId, @NotNull String file, int line) { for (ProcessDebugger d : allDebuggers()) { d.removeBreakpoint(typeId, file, line); } }
@Override public void setTempBreakpoint(@NotNull String type, @NotNull String file, int line) { for (ProcessDebugger d : allDebuggers()) { d.setTempBreakpoint(type, file, line); } }
@Override public void suspendAllThreads() { for (ProcessDebugger d : allDebuggers()) { d.suspendAllThreads(); } }
@Override public void execute(@NotNull AbstractCommand command) { for (ProcessDebugger d : allDebuggers()) { d.execute(command); } }
@Override public void removeTempBreakpoint(String file, int line) { for (ProcessDebugger d : allDebuggers()) { d.removeTempBreakpoint(file, line); } }