use of org.eclipse.che.api.debug.shared.model.impl.event.SuspendEventImpl in project che by eclipse.
the class GdbDebugger method resume.
@Override
public void resume(ResumeAction action) throws DebuggerException {
try {
GdbContinue gdbContinue = gdb.cont();
Breakpoint breakpoint = gdbContinue.getBreakpoint();
if (breakpoint != null) {
currentLocation = breakpoint.getLocation();
debuggerCallback.onEvent(new SuspendEventImpl(breakpoint.getLocation()));
} else {
GdbInfoProgram gdbInfoProgram = gdb.infoProgram();
if (gdbInfoProgram.getStoppedAddress() == null) {
disconnect();
}
}
} catch (GdbTerminatedException e) {
disconnect();
throw e;
} catch (IOException | GdbParseException | InterruptedException e) {
throw new DebuggerException("Resume error. " + e.getMessage(), e);
}
}
use of org.eclipse.che.api.debug.shared.model.impl.event.SuspendEventImpl in project che by eclipse.
the class GdbDebugger method stepOut.
@Override
public void stepOut(StepOutAction action) throws DebuggerException {
try {
GdbInfoLine gdbInfoLine = gdb.finish();
if (gdbInfoLine == null) {
disconnect();
return;
}
currentLocation = gdbInfoLine.getLocation();
debuggerCallback.onEvent(new SuspendEventImpl(gdbInfoLine.getLocation()));
} catch (GdbTerminatedException e) {
disconnect();
throw e;
} catch (IOException | GdbParseException | InterruptedException e) {
throw new DebuggerException("Step out error. " + e.getMessage(), e);
}
}
use of org.eclipse.che.api.debug.shared.model.impl.event.SuspendEventImpl in project che by eclipse.
the class GdbDebugger method start.
@Override
public void start(StartAction action) throws DebuggerException {
try {
for (Breakpoint b : action.getBreakpoints()) {
try {
addBreakpoint(b);
} catch (DebuggerException e) {
// can't add breakpoint, skip it
}
}
Breakpoint breakpoint;
if (isRemoteConnection()) {
GdbContinue gdbContinue = gdb.cont();
breakpoint = gdbContinue.getBreakpoint();
} else {
GdbRun gdbRun = gdb.run();
breakpoint = gdbRun.getBreakpoint();
}
if (breakpoint != null) {
currentLocation = breakpoint.getLocation();
debuggerCallback.onEvent(new SuspendEventImpl(breakpoint.getLocation()));
} else {
GdbInfoProgram gdbInfoProgram = gdb.infoProgram();
if (gdbInfoProgram.getStoppedAddress() == null) {
disconnect();
}
}
} catch (GdbTerminatedException e) {
disconnect();
throw e;
} catch (IOException | GdbParseException | InterruptedException e) {
throw new DebuggerException("Error during running. " + e.getMessage(), e);
}
}
use of org.eclipse.che.api.debug.shared.model.impl.event.SuspendEventImpl in project che by eclipse.
the class GdbDebugger method stepInto.
@Override
public void stepInto(StepIntoAction action) throws DebuggerException {
try {
GdbInfoLine gdbInfoLine = gdb.step();
if (gdbInfoLine == null) {
disconnect();
return;
}
currentLocation = gdbInfoLine.getLocation();
debuggerCallback.onEvent(new SuspendEventImpl(gdbInfoLine.getLocation()));
} catch (GdbTerminatedException e) {
disconnect();
throw e;
} catch (IOException | GdbParseException | InterruptedException e) {
throw new DebuggerException("Step into error. " + e.getMessage(), e);
}
}
use of org.eclipse.che.api.debug.shared.model.impl.event.SuspendEventImpl in project che by eclipse.
the class ZendDebugger method handleReady.
private void handleReady(ReadyNotification notification) {
String remoteFilePath = notification.getFileName();
if (breakpointAflId != null && remoteFilePath.equals(debugStartFile)) {
debugConnection.sendRequest(new DeleteBreakpointRequest(breakpointAflId));
breakpointAflId = null;
}
int lineNumber = notification.getLineNumber();
Location dbgLocation = ZendDbgLocationHandler.createDBG(remoteFilePath, lineNumber);
// Convert DBG location from engine to VFS location
Location vfsLocation = debugLocationHandler.convertToVFS(dbgLocation);
// Send suspend event
debugCallback.onEvent(new SuspendEventImpl(vfsLocation));
}
Aggregations