Java 类org.eclipse.debug.core.IBreakpointManager 实例源码
项目:dsp4e
文件:DSPDebugTarget.java
public DSPDebugTarget(ILaunch launch, Process process, InputStream in, OutputStream out,
Map<String, Object> launchArguments) throws CoreException {
super(null);
this.launch = launch;
this.process = process;
DebugLauncher<IDebugProtocolServer> debugProtocolLauncher = DebugLauncher.createLauncher(this,
IDebugProtocolServer.class, in, out, true, new PrintWriter(System.out));
debugProtocolFuture = debugProtocolLauncher.startListening();
debugProtocolServer = debugProtocolLauncher.getRemoteProxy();
complete(debugProtocolServer.initialize(new InitializeRequestArguments().setClientID("lsp4e")
.setAdapterID((String) launchArguments.get("type")).setPathFormat("path")));
Object object = launchArguments.get("program");
targetName = Objects.toString(object, "Debug Adapter Target");
complete(debugProtocolServer.launch(Either.forLeft(launchArguments)));
complete(debugProtocolServer.configurationDone());
IBreakpointManager breakpointManager = getBreakpointManager();
breakpointManager.addBreakpointListener(this);
breakpointManager.addBreakpointManagerListener(this);
breakpointManagerEnablementChanged(breakpointManager.isEnabled());
}
项目:chromedevtools
文件:ChromiumLineBreakpoint.java
public static ChromiumLineBreakpoint createLocal(Breakpoint sdkBreakpoint,
IBreakpointManager breakpointManager, IFile resource, int script_line_offset,
String debugModelId) throws CoreException {
ChromiumLineBreakpoint uiBreakpoint = new ChromiumLineBreakpoint(resource,
(int) sdkBreakpoint.getLineNumber() + 1 + script_line_offset,
debugModelId);
uiBreakpoint.setCondition(sdkBreakpoint.getCondition());
uiBreakpoint.setEnabled(sdkBreakpoint.isEnabled());
ignoreList.add(uiBreakpoint);
try {
breakpointManager.addBreakpoint(uiBreakpoint);
} finally {
ignoreList.remove(uiBreakpoint);
}
return uiBreakpoint;
}
项目:chromedevtools
文件:AddExceptionBreakpointAction.java
private Performer createPerformer(ISelection selection) {
final IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
return new Performer() {
@Override
void run() {
IResource resource = ResourcesPlugin.getWorkspace().getRoot();
boolean includingCaught = true;
try {
ChromiumExceptionBreakpoint exceptionBreakpoint = new ChromiumExceptionBreakpoint(
resource, includingCaught, VProjectWorkspaceBridge.DEBUG_MODEL_ID);
breakpointManager.addBreakpoint(exceptionBreakpoint);
} catch (CoreException e) {
throw new RuntimeException(e);
}
}
};
}
项目:Pydev
文件:PyDebugTargetServer.java
public PyDebugTargetServer(ILaunch launch, IPath[] file, RemoteDebuggerServer debugger) {
this.file = file;
this.debugger = debugger;
this.threads = new PyThread[0];
this.launch = launch;
if (launch != null) {
for (IDebugTarget target : launch.getDebugTargets()) {
if (target instanceof PyDebugTargetServer && target.isTerminated()) {
launch.removeDebugTarget(target);
}
}
launch.addDebugTarget(this);
}
debugger.addTarget(this);
PyExceptionBreakPointManager.getInstance().addListener(this);
PyPropertyTraceManager.getInstance().addListener(this);
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.addBreakpointListener(this);
// we have to know when we get removed, so that we can shut off the debugger
DebugPlugin.getDefault().getLaunchManager().addLaunchListener(this);
}
项目:Pydev
文件:PyDebugTarget.java
public PyDebugTarget(ILaunch launch, IProcess process, IPath[] file, AbstractRemoteDebugger debugger,
IProject project, boolean isAuxiliaryDebugTarget) {
this.launch = launch;
this.process = process;
this.file = file;
this.debugger = debugger;
this.threads = new PyThread[0];
this.project = project;
this.isAuxiliaryDebugTarget = isAuxiliaryDebugTarget;
launch.addDebugTarget(this);
debugger.addTarget(this);
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.addBreakpointListener(this);
PyExceptionBreakPointManager.getInstance().addListener(this);
PyPropertyTraceManager.getInstance().addListener(this);
// we have to know when we get removed, so that we can shut off the debugger
DebugPlugin.getDefault().getLaunchManager().addLaunchListener(this);
}
项目:dsp4e
文件:DSPDebugTarget.java
private void terminated() {
fTerminated = true;
IBreakpointManager breakpointManager = getBreakpointManager();
breakpointManager.removeBreakpointListener(this);
breakpointManager.removeBreakpointManagerListener(this);
fireTerminateEvent();
}
项目:chromedevtools
文件:ConnectedTargetData.java
public void initListeners() {
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.addBreakpointListener(debugTargetState.getBreakpointListner());
breakpointManager.addBreakpointManagerListener(workspaceRelations.getBreakpointHandler());
workspaceRelations.getBreakpointHandler().initBreakpointManagerListenerState(
breakpointManager);
workspaceRelations.startInitialization();
}
项目:chromedevtools
文件:BreakpointSynchronizer.java
private ChromiumBreakpointsFiltered getUiBreakpoints() {
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
final Set<ChromiumLineBreakpoint> lineBreakpoints = new HashSet<ChromiumLineBreakpoint>();
final List<ChromiumExceptionBreakpoint> exceptionBreakpoints =
new ArrayList<ChromiumExceptionBreakpoint>(2);
for (IBreakpoint breakpoint :
breakpointManager.getBreakpoints(VProjectWorkspaceBridge.DEBUG_MODEL_ID)) {
{
ChromiumLineBreakpoint chromiumLineBreakpoint =
ChromiumBreakpointAdapter.tryCastBreakpoint(breakpoint);
if (chromiumLineBreakpoint != null) {
lineBreakpoints.add(chromiumLineBreakpoint);
continue;
}
}
{
ChromiumExceptionBreakpoint chromiumExceptionBreakpoint =
ChromiumExceptionBreakpoint.tryCastBreakpoint(breakpoint);
if (chromiumExceptionBreakpoint != null) {
exceptionBreakpoints.add(chromiumExceptionBreakpoint);
continue;
}
}
}
return new ChromiumBreakpointsFiltered() {
@Override public Set<ChromiumLineBreakpoint> getLineBreakpoints() {
return lineBreakpoints;
}
@Override public Collection<ChromiumExceptionBreakpoint> getExceptionBreakpoints() {
return exceptionBreakpoints;
}
};
}
项目:Pydev
文件:PyDebugTargetServer.java
@Override
public void launchRemoved(ILaunch launch) {
// shut down the remote debugger when parent launch
if (launch == this.launch) {
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.removeBreakpointListener(this);
PyExceptionBreakPointManager.getInstance().removeListener(this);
PyPropertyTraceManager.getInstance().removeListener(this);
}
}
项目:Pydev
文件:PyDebugTarget.java
@Override
public void launchRemoved(ILaunch launch) {
// shut down the remote debugger when parent launch
if (launch == this.launch) {
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.removeBreakpointListener(this);
PyExceptionBreakPointManager.getInstance().removeListener(this);
PyPropertyTraceManager.getInstance().removeListener(this);
debugger.dispose();
debugger = null;
}
}
项目:Pydev
文件:PyEditBreakpointSync.java
@Override
public void onDispose(BaseEditor baseEditor, IProgressMonitor monitor) {
if (this.edit != null) {
this.edit = null;
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
breakpointManager.removeBreakpointListener(this);
}
}
项目:brainfuck
文件:BfThread.java
@Override
public void fireSuspendEvent(int detail) {
this.stackFrame = new BfStackFrame(getDebugTarget(), this, "Brainfuck Stack Frame");
if (detail == DebugEvent.STEP_END) {
this.isStepping = false;
this.fireChangeEvent(DebugEvent.CONTENT | DebugEvent.STATE);
}
else if (detail == DebugEvent.BREAKPOINT) {
try {
IBreakpointManager bpManager = DebugPlugin.getDefault().getBreakpointManager();
int location = this.getDebugTarget().getProcess().getProcessListener().getInstructionPointer();
List<IBreakpoint> breakpoints = new ArrayList<>();
for (IBreakpoint bp : bpManager.getBreakpoints(getModelIdentifier())) {
if (bp instanceof BfBreakpoint && ((BfBreakpoint) bp).getCharStart() == location) {
breakpoints.add(bp);
}
}
this.suspendedBreakpoints = breakpoints.toArray(new IBreakpoint[breakpoints.size()]);
// this.fireChangeEvent(DebugEvent.CONTENT | DebugEvent.STATE);
}
catch (CoreException ex) {
DbgActivator.getDefault().logError("Breakpoints cannot be found", ex);
}
}
try {
IMemoryBlockManager mbManager = DebugPlugin.getDefault().getMemoryBlockManager();
List<IMemoryBlock> memoryBlocks = Arrays.asList(mbManager.getMemoryBlocks(getDebugTarget()));
boolean found = false;
int length = this.getDebugTarget().getProcess().getProcessListener().getSuspendedState().getDataSize();
for (IMemoryBlock block : memoryBlocks) {
if (block.getStartAddress() == 0 && block.getLength() == length) {
found = true;
break;
}
}
if (!found) {
BfMemoryBlock mb = (BfMemoryBlock) this.getDebugTarget().getMemoryBlock(0, length);
mb.setUserCreated(false);
mb.fireCreationEvent();
mbManager.addMemoryBlocks(new IMemoryBlock[]{mb});
}
}
catch (DebugException e) {
DbgActivator.getDefault().logError("Memory block could not be created", e);
}
super.fireSuspendEvent(detail);
}
项目:chromedevtools
文件:VProjectWorkspaceBridge.java
public void initBreakpointManagerListenerState(IBreakpointManager breakpointManager) {
for (BreakpointMapperBase<?, ?> handler : allHandlers) {
handler.initEnablement(breakpointManager);
}
}
项目:chromedevtools
文件:VProjectWorkspaceBridge.java
synchronized void init(IBreakpointManager breakpointManager) {
sendRequest(breakpointManager.isEnabled());
}
项目:chromedevtools
文件:VProjectWorkspaceBridge.java
void initEnablement(IBreakpointManager breakpointManager) {
enablementMonitor.init(breakpointManager);
}
项目:chromedevtools
文件:VProjectWorkspaceBridge.java
@Override
synchronized void initEnablement(IBreakpointManager breakpointManager) {
breakpointsEnabled = breakpointManager.isEnabled();
}
项目:Pydev
文件:AbstractBreakpointRulerAction.java
/**
* @param resource may be the file open in the editor or the workspace root (if it is an external file)
* @param document is the document opened in the editor
* @param externalFileEditorInput is not-null if this is an external file
* @param info is the vertical ruler info (only used if this is not an external file)
* @param onlyIncludeLastLineActivity if only the markers that are in the last mouse-click should be included
*
* @return the markers that correspond to the markers from the current editor.
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static List<Tuple<IMarker, IBreakpoint>> getMarkersAndBreakpointsFromEditorResource(IResource resource,
IDocument document, IEditorInput externalFileEditorInput, int lastLineActivity,
boolean onlyIncludeLastLineActivity, IAnnotationModel annotationModel) {
List<Tuple<IMarker, IBreakpoint>> breakpoints = new ArrayList<Tuple<IMarker, IBreakpoint>>();
try {
List<IMarker> markers = new ArrayList<IMarker>();
boolean isExternalFile = false;
markers.addAll(Arrays.asList(resource.findMarkers(PyBreakpoint.PY_BREAK_MARKER, true,
IResource.DEPTH_INFINITE)));
markers.addAll(Arrays.asList(resource.findMarkers(PyBreakpoint.PY_CONDITIONAL_BREAK_MARKER, true,
IResource.DEPTH_INFINITE)));
markers.addAll(Arrays.asList(resource.findMarkers(PyBreakpoint.DJANGO_BREAK_MARKER, true,
IResource.DEPTH_INFINITE)));
if (!(resource instanceof IFile)) {
//it was created from an external file
isExternalFile = true;
}
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
for (IMarker marker : markers) {
if (marker == null) {
continue;
}
IBreakpoint breakpoint = breakpointManager.getBreakpoint(marker);
if (breakpoint != null && breakpointManager.isRegistered(breakpoint)) {
Position pos = PyMarkerUtils.getMarkerPosition(document, marker, annotationModel);
if (!isExternalFile) {
if (!onlyIncludeLastLineActivity) {
breakpoints.add(new Tuple(marker, breakpoint));
} else if (includesRulerLine(pos, document, lastLineActivity)) {
breakpoints.add(new Tuple(marker, breakpoint));
}
} else {
if (isInSameExternalEditor(marker, externalFileEditorInput)) {
if (!onlyIncludeLastLineActivity) {
breakpoints.add(new Tuple(marker, breakpoint));
} else if (includesRulerLine(pos, document, lastLineActivity)) {
breakpoints.add(new Tuple(marker, breakpoint));
}
}
}
}
}
} catch (CoreException x) {
PydevDebugPlugin.log(IStatus.ERROR, "Unexpected getMarkers error (recovered properly)", x);
}
return breakpoints;
}
项目:dsp4e
文件:DSPDebugElement.java
/**
* Returns the breakpoint manager
*
* @return the breakpoint manager
*/
protected IBreakpointManager getBreakpointManager() {
return DebugPlugin.getDefault().getBreakpointManager();
}
项目:chromedevtools
文件:WorkspaceBridge.java
void initBreakpointManagerListenerState(IBreakpointManager breakpointManager);
项目:chromedevtools
文件:VProjectWorkspaceBridge.java
abstract void initEnablement(IBreakpointManager breakpointManager);