@Override void breakpointChanged(ChromiumLineBreakpoint lineBreakpoint, IMarkerDelta delta) { if (ChromiumLineBreakpoint.getIgnoreList().contains(lineBreakpoint)) { return; } Breakpoint sdkBreakpoint = getMap().getSdkBreakpoint(lineBreakpoint); if (sdkBreakpoint == null) { return; } Set<MutableProperty> propertyDelta = lineBreakpoint.getChangedProperty(delta); if (propertyDelta.isEmpty()) { return; } try { ChromiumLineBreakpoint.Helper.updateOnRemote( sdkBreakpoint, lineBreakpoint, propertyDelta); } catch (RuntimeException e) { ChromiumDebugPlugin.log( new Exception( "Failed to change breakpoint in " + //$NON-NLS-1$ getTargetNameSafe(), e)); } catch (CoreException e) { ChromiumDebugPlugin.log( new Exception( "Failed to change breakpoint in " + //$NON-NLS-1$ getTargetNameSafe(), e)); } }
@Override void breakpointAdded(ChromiumLineBreakpoint lineBreakpoint) { if (ChromiumLineBreakpoint.getIgnoreList().contains(lineBreakpoint)) { return; } IFile file = (IFile) lineBreakpoint.getMarker().getResource(); VmResourceRef vmResourceRef; try { vmResourceRef = findVmResourceRefFromWorkspaceFile(file); } catch (CoreException e) { ChromiumDebugPlugin.log( new Exception("Failed to resolve script for the file " + file, e)); // $NON-NLS-1$ return; } if (vmResourceRef == null) { // Might be a script from a different debug target return; } try { createBreakpointOnRemote(lineBreakpoint, vmResourceRef, null, null); } catch (CoreException e) { ChromiumDebugPlugin.log( new Exception( "Failed to create breakpoint in " + //$NON-NLS-1$ getTargetNameSafe(), e)); throw new RuntimeException(e); } }
void initProperties(ChromiumExceptionBreakpoint uiBreakpoint) { includeCaught = uiBreakpoint.getIncludeCaught(); try { enabled = uiBreakpoint.isEnabled(); } catch (CoreException e) { ChromiumDebugPlugin.log(e); } }
public void disconnect() throws DebugException { if (!canDisconnect()) { return; } workspaceRelations.beforeDetach(); if (!vmEmbedder.getJavascriptVm().detach()) { ChromiumDebugPlugin.logWarning(Messages.DebugTargetImpl_BadResultWhileDisconnecting); } // This is a duplicated call to disconnected(). // The primary one comes from V8DebuggerToolHandler#onDebuggerDetached // but we want to make sure the target becomes disconnected even if // there is a browser failure and it does not respond. debugEventListener.disconnected(); }
@Override void breakpointRemoved(ChromiumLineBreakpoint lineBreakpoint, IMarkerDelta delta) { if (ChromiumLineBreakpoint.getIgnoreList().contains(lineBreakpoint)) { return; } Breakpoint sdkBreakpoint = getMap().getSdkBreakpoint(lineBreakpoint); if (sdkBreakpoint == null) { return; } if (!lineBreakpoint.isEnabled()) { return; } JavascriptVm.BreakpointCallback callback = new JavascriptVm.BreakpointCallback() { public void failure(String errorMessage) { ChromiumDebugPlugin.log( new Exception( "Failed to remove breakpoint in " + //$NON-NLS-1$ getTargetNameSafe() + ": " + errorMessage)); //$NON-NLS-1$ } public void success(Breakpoint breakpoint) {} }; try { sdkBreakpoint.clear(callback, null); } catch (RuntimeException e) { ChromiumDebugPlugin.log( new Exception( "Failed to remove breakpoint in " + //$NON-NLS-1$ getTargetNameSafe(), e)); } getMap().remove(lineBreakpoint); }
public Collection<? extends IBreakpoint> handleBreakpointsHit( Collection<? extends Breakpoint> sdkBreakpoints) { if (sdkBreakpoints.isEmpty()) { return Collections.emptyList(); } Collection<IBreakpoint> uiBreakpoints = new ArrayList<IBreakpoint>(sdkBreakpoints.size()); for (Breakpoint sdkBreakpoint : sdkBreakpoints) { ChromiumLineBreakpoint uiBreakpoint = getMap().getUiBreakpoint(sdkBreakpoint); if (uiBreakpoint != null) { try { uiBreakpoint.silentlyResetIgnoreCount(); // reset ignore count as we've hit it } catch (CoreException e) { ChromiumDebugPlugin.log(new Exception("Failed to reset breakpoint ignore count", e)); } uiBreakpoints.add(uiBreakpoint); } } return uiBreakpoints; }