1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-09-10 03:53:21 +02:00

New method getRegisters() and move the intelligence of

getRegisterObjects() into the RegisterManager class.
This commit is contained in:
Alain Magloire 2002-10-02 04:48:46 +00:00
parent 324596dc72
commit 13271515fe

View file

@ -13,6 +13,7 @@ import org.eclipse.cdt.debug.core.cdi.ICDIRegisterObject;
import org.eclipse.cdt.debug.core.cdi.ICDISession;
import org.eclipse.cdt.debug.core.cdi.model.ICDIGlobalVariable;
import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock;
import org.eclipse.cdt.debug.core.cdi.model.ICDIRegister;
import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary;
import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread;
@ -22,7 +23,6 @@ import org.eclipse.cdt.debug.mi.core.MISession;
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
import org.eclipse.cdt.debug.mi.core.command.MICommand;
import org.eclipse.cdt.debug.mi.core.command.MIDataEvaluateExpression;
import org.eclipse.cdt.debug.mi.core.command.MIDataListRegisterNames;
import org.eclipse.cdt.debug.mi.core.command.MIExecContinue;
import org.eclipse.cdt.debug.mi.core.command.MIExecFinish;
import org.eclipse.cdt.debug.mi.core.command.MIExecNext;
@ -36,7 +36,6 @@ import org.eclipse.cdt.debug.mi.core.command.MIThreadSelect;
import org.eclipse.cdt.debug.mi.core.event.MIDetachedEvent;
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
import org.eclipse.cdt.debug.mi.core.output.MIDataEvaluateExpressionInfo;
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
import org.eclipse.cdt.debug.mi.core.output.MIInfo;
import org.eclipse.cdt.debug.mi.core.output.MIInfoThreadsInfo;
import org.eclipse.cdt.debug.mi.core.output.MIThreadSelectInfo;
@ -107,8 +106,8 @@ public class CTarget implements ICDITarget {
// Resetting threads may change the value of
// some variables like Register. Send an update
// To generate changeEvents.
VariableManager varMgr = session.getVariableManager();
varMgr.update();
RegisterManager regMgr = session.getRegisterManager();
regMgr.update();
}
// We should be allright now.
@ -468,28 +467,24 @@ public class CTarget implements ICDITarget {
* @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getRegisterObjects()
*/
public ICDIRegisterObject[] getRegisterObjects() throws CDIException {
MISession mi = session.getMISession();
CommandFactory factory = mi.getCommandFactory();
MIDataListRegisterNames registers =
factory.createMIDataListRegisterNames();
try {
mi.postCommand(registers);
MIDataListRegisterNamesInfo info =
registers.getMIDataListRegisterNamesInfo();
if (info == null) {
throw new CDIException("No answer");
}
String[] names = info.getRegisterNames();
RegisterObject[] regs = new RegisterObject[names.length];
for (int i = 0; i < names.length; i++) {
regs[i] = new RegisterObject(names[i], i);
}
return regs;
} catch (MIException e) {
throw new CDIException(e.getMessage());
}
RegisterManager mgr = session.getRegisterManager();
return mgr.getRegisterObjects();
}
/**
* @see org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame#getRegisters(ICDIRegisterObject[])
*/
public ICDIRegister[] getRegisters(ICDIRegisterObject[] regs) throws CDIException {
ICDIRegister[] registers = null;
RegisterManager mgr = session.getRegisterManager();
registers = new ICDIRegister[regs.length];
for (int i = 0; i < registers.length; i++) {
registers[i] = mgr.createRegister(regs[i]);
}
return registers;
}
/**
* @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#getSharedLibraries()
*/