mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
implementing CDI.
This commit is contained in:
parent
e49c3ff3d6
commit
fa45945774
14 changed files with 385 additions and 115 deletions
|
@ -0,0 +1,102 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICCondition;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICLocation;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICLocationBreakpoint;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alain
|
||||||
|
*
|
||||||
|
* To change this generated comment edit the template variable "typecomment":
|
||||||
|
* Window>Preferences>Java>Templates.
|
||||||
|
* To enable and disable the creation of type comments go to
|
||||||
|
* Window>Preferences>Java>Code Generation.
|
||||||
|
*/
|
||||||
|
public class Breakpoint extends SessionObject implements ICLocationBreakpoint {
|
||||||
|
|
||||||
|
int type;
|
||||||
|
ICLocation location;
|
||||||
|
ICCondition condition;
|
||||||
|
String threadId = "";
|
||||||
|
boolean enabled = false;
|
||||||
|
MIBreakPoint miBreakPoint;
|
||||||
|
|
||||||
|
public Breakpoint(BreakpointManager mgr, MIBreakPoint miBreak) {
|
||||||
|
super((Session)mgr.getSession());
|
||||||
|
miBreakPoint = miBreak;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#getCondition()
|
||||||
|
*/
|
||||||
|
public ICCondition getCondition() throws CDIException {
|
||||||
|
return condition;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#getThreadId()
|
||||||
|
*/
|
||||||
|
public String getThreadId() throws CDIException {
|
||||||
|
return threadId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#isEnabled()
|
||||||
|
*/
|
||||||
|
public boolean isEnabled() throws CDIException {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#isHardware()
|
||||||
|
*/
|
||||||
|
public boolean isHardware() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#isTemporary()
|
||||||
|
*/
|
||||||
|
public boolean isTemporary() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#setCondition(ICCondition)
|
||||||
|
*/
|
||||||
|
public void setCondition(ICCondition condition) throws CDIException {
|
||||||
|
this.condition = condition;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpoint#setEnabled(boolean)
|
||||||
|
*/
|
||||||
|
public void setEnabled(boolean enable) throws CDIException {
|
||||||
|
/*
|
||||||
|
if (enable == false && enabled == true) {
|
||||||
|
if (miBreak != null) {
|
||||||
|
MICommand cmd = new MIBreakDisable(miBreak.getNumber());
|
||||||
|
}
|
||||||
|
} else if (enable == true && enabled == false) {
|
||||||
|
if (miBreak != null) {
|
||||||
|
MICommand cmd = new MIBreakEnable(miBreak.getNumber());
|
||||||
|
} else {
|
||||||
|
MIBreakInsert cmd = new MIBreakInsert();
|
||||||
|
miSession.postCommand(cmd);
|
||||||
|
miBreak = cmd.getBreakInsertInfo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enabled = enable;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICLocationBreakpoint#getLocation()
|
||||||
|
*/
|
||||||
|
public ICLocation getLocation() throws CDIException {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,9 @@
|
||||||
*/
|
*/
|
||||||
package org.eclipse.cdt.debug.mi.core.cdi;
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICBreakpoint;
|
import org.eclipse.cdt.debug.core.cdi.ICBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICBreakpointManager;
|
import org.eclipse.cdt.debug.core.cdi.ICBreakpointManager;
|
||||||
|
@ -13,27 +16,30 @@ import org.eclipse.cdt.debug.core.cdi.ICCatchpoint;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICCondition;
|
import org.eclipse.cdt.debug.core.cdi.ICCondition;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICLocation;
|
import org.eclipse.cdt.debug.core.cdi.ICLocation;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICLocationBreakpoint;
|
import org.eclipse.cdt.debug.core.cdi.ICLocationBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICWatchpoint;
|
import org.eclipse.cdt.debug.core.cdi.ICWatchpoint;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MIException;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.command.MIBreakInsert;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIBreakInsertInfo;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class BreakpointManager implements ICBreakpointManager {
|
public class BreakpointManager extends SessionObject implements ICBreakpointManager {
|
||||||
|
|
||||||
MISession session;
|
List breakList;
|
||||||
ICBreakpoint[] breakpoints = new ICBreakpoint[0];
|
|
||||||
|
|
||||||
public BreakpointManager(MISession s) {
|
public BreakpointManager(Session session) {
|
||||||
session = s;
|
super(session);
|
||||||
|
breakList = new ArrayList(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#deleteAllBreakpoints()
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#deleteAllBreakpoints()
|
||||||
*/
|
*/
|
||||||
public void deleteAllBreakpoints() throws CDIException {
|
public void deleteAllBreakpoints() throws CDIException {
|
||||||
deleteBreakpoints(breakpoints);
|
deleteBreakpoints(getBreakpoints());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,23 +52,14 @@ public class BreakpointManager implements ICBreakpointManager {
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#deleteBreakpoints(ICBreakpoint[])
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#deleteBreakpoints(ICBreakpoint[])
|
||||||
*/
|
*/
|
||||||
public void deleteBreakpoints(ICBreakpoint[] breakpoints)
|
public void deleteBreakpoints(ICBreakpoint[] breakpoints) throws CDIException {
|
||||||
throws CDIException {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#getBreakpoint(String)
|
|
||||||
*/
|
|
||||||
public ICBreakpoint getBreakpoint(String breakpointId)
|
|
||||||
throws CDIException {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#getBreakpoints()
|
* @see org.eclipse.cdt.debug.core.cdi.ICBreakpointManager#getBreakpoints()
|
||||||
*/
|
*/
|
||||||
public ICBreakpoint[] getBreakpoints() throws CDIException {
|
public ICBreakpoint[] getBreakpoints() throws CDIException {
|
||||||
return breakpoints;
|
return (ICBreakpoint[])breakList.toArray(new ICBreakpoint[breakList.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,7 +85,45 @@ public class BreakpointManager implements ICBreakpointManager {
|
||||||
boolean enabled,
|
boolean enabled,
|
||||||
String threadId)
|
String threadId)
|
||||||
throws CDIException {
|
throws CDIException {
|
||||||
return null;
|
|
||||||
|
boolean hardware = type == ICBreakpoint.HARDWARE;
|
||||||
|
boolean temporary = type == ICBreakpoint.TEMPORARY;
|
||||||
|
String exprCond = condition.getExpression();
|
||||||
|
int ignoreCount = condition.getIgnoreCount();
|
||||||
|
String line = "";
|
||||||
|
|
||||||
|
if (location.getFile() != null) {
|
||||||
|
line = location.getFile().getPath() + ":";
|
||||||
|
if (location.getFunction() != null) {
|
||||||
|
line += location.getFunction();
|
||||||
|
} else {
|
||||||
|
line += Integer.toString(location.getLineNumber());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
line = "*" + Long.toString(location.getAddress());
|
||||||
|
}
|
||||||
|
|
||||||
|
Session s = (Session)getSession();
|
||||||
|
CommandFactory factory = s.getMISession().getCommandFactory();
|
||||||
|
MIBreakInsert breakInsert = factory.createMIBreakInsert(temporary, hardware,
|
||||||
|
exprCond, ignoreCount, line);
|
||||||
|
MIBreakPoint[] points = null;
|
||||||
|
try {
|
||||||
|
MIBreakInsertInfo info = breakInsert.getMIBreakInsertInfo();
|
||||||
|
if (info == null) {
|
||||||
|
//throw new CDIException();
|
||||||
|
}
|
||||||
|
points = info.getBreakPoints();
|
||||||
|
if (points == null || points.length == 0) {
|
||||||
|
//throw new CDIException();
|
||||||
|
}
|
||||||
|
} catch (MIException e) {
|
||||||
|
// throw new CDIException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
Breakpoint bkpt= new Breakpoint(this, points[0]);
|
||||||
|
breakList.add(bkpt);
|
||||||
|
return bkpt;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -103,11 +138,4 @@ public class BreakpointManager implements ICBreakpointManager {
|
||||||
throws CDIException {
|
throws CDIException {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ import org.eclipse.cdt.debug.core.cdi.model.ICRegisterGroup;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICSharedLibrary;
|
import org.eclipse.cdt.debug.core.cdi.model.ICSharedLibrary;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICTarget;
|
import org.eclipse.cdt.debug.core.cdi.model.ICTarget;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICThread;
|
import org.eclipse.cdt.debug.core.cdi.model.ICThread;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -28,12 +27,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation of type comments go to
|
* To enable and disable the creation of type comments go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class CTarget implements ICTarget {
|
public class CTarget extends SessionObject implements ICTarget {
|
||||||
|
|
||||||
MISession session;
|
public CTarget(Session session) {
|
||||||
|
super(session);
|
||||||
public CTarget(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -106,13 +103,6 @@ public class CTarget implements ICTarget {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.model.ICTarget#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.model.ICTarget#getSharedLibraries()
|
* @see org.eclipse.cdt.debug.core.cdi.model.ICTarget#getSharedLibraries()
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alain
|
||||||
|
*
|
||||||
|
* To change this generated comment edit the template variable "typecomment":
|
||||||
|
* Window>Preferences>Java>Templates.
|
||||||
|
* To enable and disable the creation of type comments go to
|
||||||
|
* Window>Preferences>Java>Code Generation.
|
||||||
|
*/
|
||||||
|
public class DebugConfiguration implements ICDebugConfiguration {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsBreakpoints()
|
||||||
|
*/
|
||||||
|
public boolean supportsBreakpoints() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsDisconnect()
|
||||||
|
*/
|
||||||
|
public boolean supportsDisconnect() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsExpressionEvaluation()
|
||||||
|
*/
|
||||||
|
public boolean supportsExpressionEvaluation() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsInstructionStepping()
|
||||||
|
*/
|
||||||
|
public boolean supportsInstructionStepping() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsMemoryModification()
|
||||||
|
*/
|
||||||
|
public boolean supportsMemoryModification() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsMemoryRetrieval()
|
||||||
|
*/
|
||||||
|
public boolean supportsMemoryRetrieval() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsRegisterModification()
|
||||||
|
*/
|
||||||
|
public boolean supportsRegisterModification() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsRegisters()
|
||||||
|
*/
|
||||||
|
public boolean supportsRegisters() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsRestart()
|
||||||
|
*/
|
||||||
|
public boolean supportsRestart() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsStepping()
|
||||||
|
*/
|
||||||
|
public boolean supportsStepping() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsSuspendResume()
|
||||||
|
*/
|
||||||
|
public boolean supportsSuspendResume() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration#supportsTerminate()
|
||||||
|
*/
|
||||||
|
public boolean supportsTerminate() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -8,7 +8,6 @@ package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICEventManager;
|
import org.eclipse.cdt.debug.core.cdi.ICEventManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICEventListener;
|
import org.eclipse.cdt.debug.core.cdi.event.ICEventListener;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -18,12 +17,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation oEventManagerts go to
|
* To enable and disable the creation oEventManagerts go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class EventManager implements ICEventManager {
|
public class EventManager extends SessionObject implements ICEventManager {
|
||||||
|
|
||||||
MISession session;
|
public EventManager(Session session) {
|
||||||
|
super(session);
|
||||||
public EventManager(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -38,11 +35,4 @@ public class EventManager implements ICEventManager {
|
||||||
public void removeEventListener(ICEventListener listener) {
|
public void removeEventListener(ICEventListener listener) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICExpressionManager;
|
import org.eclipse.cdt.debug.core.cdi.ICExpressionManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICExpression;
|
import org.eclipse.cdt.debug.core.cdi.model.ICExpression;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -19,12 +18,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation of type comments go to
|
* To enable and disable the creation of type comments go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class ExpressionManager implements ICExpressionManager {
|
public class ExpressionManager extends SessionObject implements ICExpressionManager {
|
||||||
|
|
||||||
MISession session;
|
public ExpressionManager(Session session) {
|
||||||
|
super(session);
|
||||||
public ExpressionManager(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,11 +58,4 @@ public class ExpressionManager implements ICExpressionManager {
|
||||||
throws CDIException {
|
throws CDIException {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICMemoryManager;
|
import org.eclipse.cdt.debug.core.cdi.ICMemoryManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICMemoryBlock;
|
import org.eclipse.cdt.debug.core.cdi.model.ICMemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -19,12 +18,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation of type comments go to
|
* To enable and disable the creation of type comments go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class MemoryManager implements ICMemoryManager {
|
public class MemoryManager extends SessionObject implements ICMemoryManager {
|
||||||
|
|
||||||
MISession session;
|
public MemoryManager(Session session) {
|
||||||
|
super(session);
|
||||||
public MemoryManager(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,11 +63,4 @@ public class MemoryManager implements ICMemoryManager {
|
||||||
throws CDIException {
|
throws CDIException {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICRuntimeOptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alain
|
||||||
|
*
|
||||||
|
* To change this generated comment edit the template variable "typecomment":
|
||||||
|
* Window>Preferences>Java>Templates.
|
||||||
|
* To enable and disable the creation of type comments go to
|
||||||
|
* Window>Preferences>Java>Code Generation.
|
||||||
|
*/
|
||||||
|
public class RuntimeOptions implements ICRuntimeOptions {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICRuntimeOptions#setArguments(String)
|
||||||
|
*/
|
||||||
|
public void setArguments(String args) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICRuntimeOptions#setEnvironment(Properties)
|
||||||
|
*/
|
||||||
|
public void setEnvironment(Properties props) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICRuntimeOptions#setWorkingDirectory(String)
|
||||||
|
*/
|
||||||
|
public void setWorkingDirectory(String wd) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ import org.eclipse.cdt.debug.core.cdi.ICDebugConfiguration;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICEventManager;
|
import org.eclipse.cdt.debug.core.cdi.ICEventManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICExpressionManager;
|
import org.eclipse.cdt.debug.core.cdi.ICExpressionManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICMemoryManager;
|
import org.eclipse.cdt.debug.core.cdi.ICMemoryManager;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICRuntimeOptions;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSignalManager;
|
import org.eclipse.cdt.debug.core.cdi.ICSignalManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSourceManager;
|
import org.eclipse.cdt.debug.core.cdi.ICSourceManager;
|
||||||
|
@ -23,7 +24,7 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSession
|
* @see org.eclipse.cdt.debug.core.cdi.ICSession
|
||||||
*/
|
*/
|
||||||
public class CSession implements ICSession {
|
public class Session implements ICSession {
|
||||||
|
|
||||||
Properties props;
|
Properties props;
|
||||||
MISession session;
|
MISession session;
|
||||||
|
@ -35,16 +36,20 @@ public class CSession implements ICSession {
|
||||||
SourceManager sourceManager;
|
SourceManager sourceManager;
|
||||||
CTarget ctarget;
|
CTarget ctarget;
|
||||||
|
|
||||||
public CSession(MISession s) {
|
public Session(MISession s) {
|
||||||
session = s;
|
session = s;
|
||||||
props = new Properties();
|
props = new Properties();
|
||||||
breakpointManager = new BreakpointManager(session);
|
breakpointManager = new BreakpointManager(this);
|
||||||
eventManager = new EventManager(session);
|
eventManager = new EventManager(this);
|
||||||
expressionManager = new ExpressionManager(session);
|
expressionManager = new ExpressionManager(this);
|
||||||
memoryManager = new MemoryManager(session);
|
memoryManager = new MemoryManager(this);
|
||||||
signalManager = new SignalManager(session);
|
signalManager = new SignalManager(this);
|
||||||
sourceManager = new SourceManager(session);
|
sourceManager = new SourceManager(this);
|
||||||
ctarget = new CTarget(session);
|
ctarget = new CTarget(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
MISession getMISession() {
|
||||||
|
return session;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -128,7 +133,13 @@ public class CSession implements ICSession {
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSuration()
|
* @see org.eclipse.cdt.debug.core.cdi.ICSuration()
|
||||||
*/
|
*/
|
||||||
public ICDebugConfiguration getConfiguration() {
|
public ICDebugConfiguration getConfiguration() {
|
||||||
return null;
|
return new DebugConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICSession#getRuntimeOptions()
|
||||||
|
*/
|
||||||
|
public ICRuntimeOptions getRuntimeOptions() {
|
||||||
|
return new RuntimeOptions();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.ICSessionObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alain
|
||||||
|
*
|
||||||
|
* To change this generated comment edit the template variable "typecomment":
|
||||||
|
* Window>Preferences>Java>Templates.
|
||||||
|
* To enable and disable the creation of type comments go to
|
||||||
|
* Window>Preferences>Java>Code Generation.
|
||||||
|
*/
|
||||||
|
public class SessionObject implements ICSessionObject {
|
||||||
|
|
||||||
|
Session session;
|
||||||
|
|
||||||
|
public SessionObject (Session session) {
|
||||||
|
this.session = session;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
||||||
|
*/
|
||||||
|
public ICSession getSession() {
|
||||||
|
return session;
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,6 @@ import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSignal;
|
import org.eclipse.cdt.debug.core.cdi.ICSignal;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSignalManager;
|
import org.eclipse.cdt.debug.core.cdi.ICSignalManager;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -19,12 +18,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation of type comments go to
|
* To enable and disable the creation of type comments go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class SignalManager implements ICSignalManager {
|
public class SignalManager extends SessionObject implements ICSignalManager {
|
||||||
|
|
||||||
MISession session;
|
public SignalManager(Session session) {
|
||||||
|
super(session);
|
||||||
public SignalManager(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,11 +31,4 @@ public class SignalManager implements ICSignalManager {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import java.io.File;
|
||||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
import org.eclipse.cdt.debug.core.cdi.ICSession;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICSourceManager;
|
import org.eclipse.cdt.debug.core.cdi.ICSourceManager;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author alain
|
* @author alain
|
||||||
|
@ -20,12 +19,10 @@ import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
* To enable and disable the creation of type comments go to
|
* To enable and disable the creation of type comments go to
|
||||||
* Window>Preferences>Java>Code Generation.
|
* Window>Preferences>Java>Code Generation.
|
||||||
*/
|
*/
|
||||||
public class SourceManager implements ICSourceManager {
|
public class SourceManager extends SessionObject implements ICSourceManager {
|
||||||
|
|
||||||
MISession session;
|
public SourceManager(Session session) {
|
||||||
|
super(session);
|
||||||
public SourceManager(MISession s) {
|
|
||||||
session = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,11 +44,4 @@ public class SourceManager implements ICSourceManager {
|
||||||
public void set(File[] directories) throws CDIException {
|
public void set(File[] directories) throws CDIException {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.ICSessionObject#getSession()
|
|
||||||
*/
|
|
||||||
public ICSession getSession() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,10 @@ public class MIBreakInsert extends MICommand
|
||||||
setParameters(new String[]{line});
|
setParameters(new String[]{line});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MIBreakInsertInfo getMIBreakInsertInfo() throws MIException {
|
||||||
|
return (MIBreakInsertInfo)getMIInfo();
|
||||||
|
}
|
||||||
|
|
||||||
public MIInfo getMIInfo() throws MIException {
|
public MIInfo getMIInfo() throws MIException {
|
||||||
MIInfo info = null;
|
MIInfo info = null;
|
||||||
MIOutput out = getMIOutput();
|
MIOutput out = getMIOutput();
|
||||||
|
|
|
@ -7,6 +7,12 @@ package org.eclipse.cdt.debug.mi.core.output;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contain info about the GDB/MI breakpoint info.
|
* Contain info about the GDB/MI breakpoint info.
|
||||||
|
* -break-insert -t -c 2 main
|
||||||
|
* ^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",cond="2",times="0"}
|
||||||
|
* (gdb)
|
||||||
|
* -break-insert -h -i 2 main
|
||||||
|
* ^done,bkpt={number="2",type="hw breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0",ignore="2"}
|
||||||
|
* (gdb)
|
||||||
*/
|
*/
|
||||||
public class MIBreakPoint {
|
public class MIBreakPoint {
|
||||||
|
|
||||||
|
@ -20,6 +26,8 @@ public class MIBreakPoint {
|
||||||
int line;
|
int line;
|
||||||
int times;
|
int times;
|
||||||
String what = "";
|
String what = "";
|
||||||
|
String cond = "";
|
||||||
|
int ignore;
|
||||||
|
|
||||||
public MIBreakPoint(MITuple tuple) {
|
public MIBreakPoint(MITuple tuple) {
|
||||||
parse(tuple);
|
parse(tuple);
|
||||||
|
@ -65,6 +73,14 @@ public class MIBreakPoint {
|
||||||
return what;
|
return what;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getIgnoreCount() {
|
||||||
|
return ignore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCondition() {
|
||||||
|
return cond;
|
||||||
|
}
|
||||||
|
|
||||||
void parse(MITuple tuple) {
|
void parse(MITuple tuple) {
|
||||||
MIResult[] results = tuple.getMIResults();
|
MIResult[] results = tuple.getMIResults();
|
||||||
for (int i = 0; i < results.length; i++) {
|
for (int i = 0; i < results.length; i++) {
|
||||||
|
@ -107,6 +123,13 @@ public class MIBreakPoint {
|
||||||
}
|
}
|
||||||
} else if (var.equals("what") || var.equals("exp")) {
|
} else if (var.equals("what") || var.equals("exp")) {
|
||||||
what = str;
|
what = str;
|
||||||
|
} else if (var.equals("ignore")) {
|
||||||
|
try {
|
||||||
|
ignore = Integer.parseInt(str.trim());
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
}
|
||||||
|
} else if (var.equals("cond")) {
|
||||||
|
cond = str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue