// INewDbgpServerListener public void clientConnected(IDbgpSession session) { final IDbgpSessionInfo info = session.getInfo(); if (info != null) { final IDbgpThreadAcceptor acceptor = (IDbgpThreadAcceptor) acceptors.get(info.getIdeKey()); if (acceptor != null) { acceptor.acceptDbgpThread(session, new NullProgressMonitor()); } else { session.requestTermination(); } } }
private void removeBreakpoint() { try { final IDbgpSession[] sessions = manager.getSessions(); for (int i = 0; i < sessions.length; ++i) { final IDbgpSession session = sessions[i]; final String id = ids.remove(session); if (id != null) { session.getCoreCommands().removeBreakpoint(id); } } } catch (DbgpException e) { DLTKDebugPlugin.log(e); } }
private static void changeSpawnpoint(final IDbgpSession session, IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException { final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session.get(IDbgpSpawnpointCommands.class); if (commands != null) { final String id = spawnpoint.getId(session); if (id != null) { commands.updateSpawnpoint(id, spawnpoint.isEnabled()); } } }
private synchronized boolean addSession(IDbgpSession session) { for (int i = 0; i < sessions.length; ++i) { if (session.equals(sessions[i])) { return false; } } final IDbgpSession[] temp = new IDbgpSession[sessions.length + 1]; System.arraycopy(sessions, 0, temp, 0, sessions.length); temp[sessions.length] = session; sessions = temp; return true; }
protected void removeSpawnpoint(final IDbgpSession session, IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException { final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session.get(IDbgpSpawnpointCommands.class); if (commands != null) { final String id = spawnpoint.getId(session); if (id != null) { commands.removeSpawnpoint(id); spawnpoint.setId(session, null); } } }
private void addSpawnpoint(final IDbgpSession session, IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException { if (!target.supportsBreakpoint(spawnpoint)) return; final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session.get(IDbgpSpawnpointCommands.class); final IDbgpSpawnpoint p = commands.setSpawnpoint( bpPathMapper.map(spawnpoint.getResourceURI()), spawnpoint.getLineNumber(), spawnpoint.isEnabled()); if (p != null) { spawnpoint.setId(session, p.getId()); } }
synchronized boolean removeSession(IDbgpSession session) { for (int i = 0; i < sessions.length; ++i) { if (session.equals(sessions[i])) { if (sessions.length == 1) { sessions = NO_SESSIONS; } else { final IDbgpSession[] temp = new IDbgpSession[sessions.length - 1]; if (i > 0) { System.arraycopy(sessions, 0, temp, 0, i); } ++i; if (i < sessions.length) { System.arraycopy(sessions, i, temp, i - 1, sessions.length - i); } sessions = temp; } return true; } } return false; }
protected static void removeBreakpoint(IDbgpSession session, IScriptBreakpoint breakpoint) throws DbgpException, CoreException { final IDbgpBreakpointCommands commands = session.getCoreCommands(); final String id = breakpoint.removeId(session); if (id != null) { commands.removeBreakpoint(id); } if (breakpoint instanceof IScriptMethodEntryBreakpoint) { IScriptMethodEntryBreakpoint entryBreakpoint = (IScriptMethodEntryBreakpoint) breakpoint; final String entryId = entryBreakpoint.getEntryBreakpointId(); if (entryId != null) { commands.removeBreakpoint(entryId); } final String exitId = entryBreakpoint.getExitBreakpointId(); if (exitId != null) { commands.removeBreakpoint(exitId); } } }
protected void changeBreakpoint(final IDbgpSession session, IScriptBreakpoint breakpoint) throws DbgpException, CoreException { if (!target.supportsBreakpoint(breakpoint)) return; final IDbgpBreakpointCommands commands = session.getCoreCommands(); URI bpUri = null; // map the outgoing uri if we're a line breakpoint if (breakpoint instanceof IScriptLineBreakpoint) { IScriptLineBreakpoint bp = (IScriptLineBreakpoint) breakpoint; bpUri = bpPathMapper.map(bp.getResourceURI()); } if (breakpoint instanceof IScriptMethodEntryBreakpoint) { DbgpBreakpointConfig config = createBreakpointConfig(breakpoint); IScriptMethodEntryBreakpoint entryBreakpoint = (IScriptMethodEntryBreakpoint) breakpoint; String entryId = entryBreakpoint.getEntryBreakpointId(); if (entryBreakpoint.breakOnEntry()) { if (entryId == null) { // Create entry breakpoint entryId = commands.setCallBreakpoint(bpUri, entryBreakpoint.getMethodName(), config); entryBreakpoint.setEntryBreakpointId(entryId); } else { // Update entry breakpoint commands.updateBreakpoint(entryId, config); } } else { if (entryId != null) { // Remove existing entry breakpoint commands.removeBreakpoint(entryId); entryBreakpoint.setEntryBreakpointId(null); } } String exitId = entryBreakpoint.getExitBreakpointId(); if (entryBreakpoint.breakOnExit()) { if (exitId == null) { // Create exit breakpoint exitId = commands.setReturnBreakpoint(bpUri, entryBreakpoint.getMethodName(), config); entryBreakpoint.setExitBreakpointId(exitId); } else { // Update exit breakpoint commands.updateBreakpoint(exitId, config); } } else { if (exitId != null) { // Remove exit breakpoint commands.removeBreakpoint(exitId); entryBreakpoint.setExitBreakpointId(null); } } } else { // All other breakpoints final String id = breakpoint.getId(session); if (id != null) { final DbgpBreakpointConfig config = createBreakpointConfig(breakpoint); if (breakpoint instanceof IScriptWatchpoint) { config.setExpression(makeWatchpointExpression((IScriptWatchpoint) breakpoint)); } commands.updateBreakpoint(id, config); } } }
// Adding, removing, updating protected void addBreakpoint(final IDbgpSession session, IScriptBreakpoint breakpoint) throws CoreException, DbgpException { if (!target.supportsBreakpoint(breakpoint)) return; final IDbgpCoreCommands commands = session.getCoreCommands(); DbgpBreakpointConfig config = createBreakpointConfig(breakpoint); String id = null; URI bpUri = null; // map the outgoing uri if we're a line breakpoint if (breakpoint instanceof IScriptLineBreakpoint) { IScriptLineBreakpoint bp = (IScriptLineBreakpoint) breakpoint; bpUri = bpPathMapper.map(bp.getResourceURI()); } // Type specific if (breakpoint instanceof IScriptWatchpoint) { IScriptWatchpoint watchpoint = (IScriptWatchpoint) breakpoint; config.setExpression(makeWatchpointExpression(watchpoint)); config.setLineNo(watchpoint.getLineNumber()); if (bpLineMapper != null) { bpLineMapper.toDebuggerBreakpoint(bpUri, config.getLineNo(), config); } id = commands.setWatchBreakpoint(bpUri, config.getLineNo(), config); } else if (breakpoint instanceof IScriptMethodEntryBreakpoint) { IScriptMethodEntryBreakpoint entryBreakpoint = (IScriptMethodEntryBreakpoint) breakpoint; if (entryBreakpoint.breakOnExit()) { final String exitId = commands.setReturnBreakpoint(bpUri, entryBreakpoint.getMethodName(), config); entryBreakpoint.setExitBreakpointId(exitId); } if (entryBreakpoint.breakOnEntry()) { final String entryId = commands.setCallBreakpoint(bpUri, entryBreakpoint.getMethodName(), config); entryBreakpoint.setEntryBreakpointId(entryId); } } else if (breakpoint instanceof IScriptLineBreakpoint) { IScriptLineBreakpoint lineBreakpoint = (IScriptLineBreakpoint) breakpoint; config.setLineNo(lineBreakpoint.getLineNumber()); if (bpLineMapper != null) { bpLineMapper.toDebuggerBreakpoint(bpUri, config.getLineNo(), config); } if (ScriptBreakpointUtils.isConditional(lineBreakpoint)) { id = commands.setConditionalBreakpoint(bpUri, config.getLineNo(), config); } else { id = commands.setLineBreakpoint(bpUri, config.getLineNo(), config); } } else if (breakpoint instanceof IScriptExceptionBreakpoint) { IScriptExceptionBreakpoint lineBreakpoint = (IScriptExceptionBreakpoint) breakpoint; id = commands.setExceptionBreakpoint(lineBreakpoint.getTypeName(), config); } // Identifier breakpoint.setId(session, id); }