mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Deal with the new created events.
This commit is contained in:
parent
c893038fcc
commit
f274c35232
9 changed files with 149 additions and 8 deletions
|
@ -24,6 +24,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.event.MemoryChangedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.event.ResumedEvent;
|
import org.eclipse.cdt.debug.mi.core.cdi.event.ResumedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.event.SuspendedEvent;
|
import org.eclipse.cdt.debug.mi.core.cdi.event.SuspendedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.model.CTarget;
|
import org.eclipse.cdt.debug.mi.core.cdi.model.CTarget;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.model.MemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent;
|
||||||
|
@ -35,11 +36,15 @@ import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIGDBExitEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIGDBExitEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIStoppedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIStoppedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIVarCreatedEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
|
@ -138,6 +143,14 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
} catch (CDIException e) {
|
} catch (CDIException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (miEvent instanceof MIVarCreatedEvent) {
|
||||||
|
cdiList.add(new CreatedEvent(session, (MIVarCreatedEvent)miEvent));
|
||||||
|
} else if (miEvent instanceof MIRegisterCreatedEvent) {
|
||||||
|
cdiList.add(new CreatedEvent(session, (MIRegisterCreatedEvent)miEvent));
|
||||||
|
} else if (miEvent instanceof MIThreadCreatedEvent) {
|
||||||
|
cdiList.add(new CreatedEvent(session, (MIThreadCreatedEvent)miEvent));
|
||||||
|
} else if (miEvent instanceof MIMemoryCreatedEvent) {
|
||||||
|
cdiList.add(new CreatedEvent(session, (MIMemoryCreatedEvent)miEvent));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,12 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIException;
|
import org.eclipse.cdt.debug.mi.core.MIException;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.model.MemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
|
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIDataReadMemory;
|
import org.eclipse.cdt.debug.mi.core.command.MIDataReadMemory;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +78,7 @@ public class MemoryManager extends SessionObject implements ICDIMemoryManager {
|
||||||
/**
|
/**
|
||||||
* @return the registers MemoryBlock.
|
* @return the registers MemoryBlock.
|
||||||
*/
|
*/
|
||||||
MemoryBlock[] listMemoryBlocks() {
|
public MemoryBlock[] listMemoryBlocks() {
|
||||||
return (MemoryBlock[])blockList.toArray(new MemoryBlock[0]);
|
return (MemoryBlock[])blockList.toArray(new MemoryBlock[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,6 +152,8 @@ public class MemoryManager extends SessionObject implements ICDIMemoryManager {
|
||||||
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(address, length);
|
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(address, length);
|
||||||
ICDIMemoryBlock block = new MemoryBlock(getCSession().getCTarget(), address, info);
|
ICDIMemoryBlock block = new MemoryBlock(getCSession().getCTarget(), address, info);
|
||||||
blockList.add(block);
|
blockList.add(block);
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIMemoryCreatedEvent(block.getStartAddress(), block.getLength()));
|
||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.eclipse.cdt.debug.mi.core.command.MIDataListChangedRegisters;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIDataListRegisterNames;
|
import org.eclipse.cdt.debug.mi.core.command.MIDataListRegisterNames;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataListChangedRegistersInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataListChangedRegistersInfo;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ public class RegisterManager extends SessionObject {
|
||||||
public Register getRegister(int regno) throws CDIException {
|
public Register getRegister(int regno) throws CDIException {
|
||||||
Register[] regs = getRegisters();
|
Register[] regs = getRegisters();
|
||||||
for (int i = 0; i < regs.length; i++) {
|
for (int i = 0; i < regs.length; i++) {
|
||||||
if (regs[i].getId() == regno) {
|
if (regs[i].getID() == regno) {
|
||||||
return regs[i];
|
return regs[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,6 +87,8 @@ public class RegisterManager extends SessionObject {
|
||||||
if (reg == null) {
|
if (reg == null) {
|
||||||
reg = new Register(getCSession().getCTarget(), regObject);
|
reg = new Register(getCSession().getCTarget(), regObject);
|
||||||
regList.add(reg);
|
regList.add(reg);
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIRegisterCreatedEvent(reg.getName(), reg.getID()));
|
||||||
}
|
}
|
||||||
return reg;
|
return reg;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.eclipse.cdt.debug.mi.core.command.MIVarDelete;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIVarUpdate;
|
import org.eclipse.cdt.debug.mi.core.command.MIVarUpdate;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIVarCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIVar;
|
import org.eclipse.cdt.debug.mi.core.output.MIVar;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIVarChange;
|
import org.eclipse.cdt.debug.mi.core.output.MIVarChange;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIVarCreateInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIVarCreateInfo;
|
||||||
|
@ -264,6 +265,9 @@ public class VariableManager extends SessionObject implements ICDIExpressionMana
|
||||||
var = new Variable(stack, name, element.miVar);
|
var = new Variable(stack, name, element.miVar);
|
||||||
element.variable = var;
|
element.variable = var;
|
||||||
addElement(element);
|
addElement(element);
|
||||||
|
// Fire an created Event.
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIVarCreatedEvent(element.miVar.getVarName()));
|
||||||
}
|
}
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
|
@ -277,6 +281,9 @@ public class VariableManager extends SessionObject implements ICDIExpressionMana
|
||||||
Variable var = new Variable(stack, name, miVar);
|
Variable var = new Variable(stack, name, miVar);
|
||||||
element.variable = var;
|
element.variable = var;
|
||||||
addElement(element);
|
addElement(element);
|
||||||
|
// Fire an created Event.
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIVarCreatedEvent(miVar.getVarName()));
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,6 +296,9 @@ public class VariableManager extends SessionObject implements ICDIExpressionMana
|
||||||
carg = new Argument(stack, name,element.miVar);
|
carg = new Argument(stack, name,element.miVar);
|
||||||
element.variable = carg;
|
element.variable = carg;
|
||||||
addElement(element);
|
addElement(element);
|
||||||
|
// Fire an created Event.
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIVarCreatedEvent(element.miVar.getVarName()));
|
||||||
}
|
}
|
||||||
return carg;
|
return carg;
|
||||||
}
|
}
|
||||||
|
@ -302,6 +312,9 @@ public class VariableManager extends SessionObject implements ICDIExpressionMana
|
||||||
cexp = new Expression(stack, name, element.miVar);
|
cexp = new Expression(stack, name, element.miVar);
|
||||||
element.variable = cexp;
|
element.variable = cexp;
|
||||||
addElement(element);
|
addElement(element);
|
||||||
|
// Fire an created Event.
|
||||||
|
MISession mi = getCSession().getMISession();
|
||||||
|
mi.fireEvent(new MIVarCreatedEvent(element.miVar.getVarName()));
|
||||||
}
|
}
|
||||||
return cexp;
|
return cexp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,13 +4,25 @@
|
||||||
*/
|
*/
|
||||||
package org.eclipse.cdt.debug.mi.core.cdi.event;
|
package org.eclipse.cdt.debug.mi.core.cdi.event;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent;
|
import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager;
|
import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.CSession;
|
import org.eclipse.cdt.debug.mi.core.cdi.CSession;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.VariableManager;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.model.CObject;
|
import org.eclipse.cdt.debug.mi.core.cdi.model.CObject;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.model.CTarget;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.cdi.model.Register;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIVarCreatedEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
|
@ -31,6 +43,61 @@ public class CreatedEvent implements ICDICreatedEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CreatedEvent(CSession s, MIVarCreatedEvent var) {
|
||||||
|
session = s;
|
||||||
|
VariableManager mgr = session.getVariableManager();
|
||||||
|
String varName = var.getVarName();
|
||||||
|
VariableManager.Element element = mgr.getElement(varName);
|
||||||
|
if (element != null && element.variable != null) {
|
||||||
|
source = element.variable;
|
||||||
|
} else {
|
||||||
|
source = new CObject(session.getCTarget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreatedEvent(CSession s, MIRegisterCreatedEvent var) {
|
||||||
|
session = s;
|
||||||
|
RegisterManager mgr = session.getRegisterManager();
|
||||||
|
int regno = var.getNumber();
|
||||||
|
Register reg = null;
|
||||||
|
try {
|
||||||
|
reg = mgr.getRegister(regno);
|
||||||
|
} catch (CDIException e) {
|
||||||
|
}
|
||||||
|
if (reg != null) {
|
||||||
|
source = reg;
|
||||||
|
} else {
|
||||||
|
source = new CObject(session.getCTarget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreatedEvent(CSession s, MIThreadCreatedEvent ethread) {
|
||||||
|
session = s;
|
||||||
|
CTarget target = (CTarget)session.getCurrentTarget();
|
||||||
|
ICDIThread thread = target.getThread(ethread.getId());
|
||||||
|
if (thread != null) {
|
||||||
|
source = thread;
|
||||||
|
} else {
|
||||||
|
source = new CObject(session.getCTarget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreatedEvent(CSession s, MIMemoryCreatedEvent mblock) {
|
||||||
|
session = s;
|
||||||
|
MemoryManager mgr = (MemoryManager)session.getMemoryManager();
|
||||||
|
ICDIMemoryBlock[] blocks = mgr.listMemoryBlocks();
|
||||||
|
for (int i = 0; i < blocks.length; i++) {
|
||||||
|
if (blocks[i].getStartAddress() == mblock.getAddress() &&
|
||||||
|
blocks[i].getLength() == mblock.getLength()) {
|
||||||
|
source = blocks[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (source == null) {
|
||||||
|
source = new CObject(session.getCTarget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public CreatedEvent(CSession s, ICDIObject src) {
|
public CreatedEvent(CSession s, ICDIObject src) {
|
||||||
session = s;
|
session = s;
|
||||||
source = src;
|
source = src;
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.util.List;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIMemoryChangedEvent;
|
import org.eclipse.cdt.debug.core.cdi.event.ICDIMemoryChangedEvent;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.CSession;
|
import org.eclipse.cdt.debug.mi.core.cdi.CSession;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.MemoryBlock;
|
import org.eclipse.cdt.debug.mi.core.cdi.model.MemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -36,6 +36,7 @@ import org.eclipse.cdt.debug.mi.core.command.MIInfoThreads;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MITargetDetach;
|
import org.eclipse.cdt.debug.mi.core.command.MITargetDetach;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIThreadSelect;
|
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.MIDetachedEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
|
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.MIDataEvaluateExpressionInfo;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIInfo;
|
||||||
|
@ -144,12 +145,38 @@ public class CTarget implements ICDITarget {
|
||||||
|
|
||||||
currentThreads = newThreads;
|
currentThreads = newThreads;
|
||||||
|
|
||||||
|
// Fire CreatedEvent for new threads.
|
||||||
|
if (newThreads != null && newThreads.length > 0) {
|
||||||
|
List cList = new ArrayList(newThreads.length);
|
||||||
|
for (int i = 0; i < newThreads.length; i++) {
|
||||||
|
boolean found = false;
|
||||||
|
for (int j = 0; oldThreads != null && j < oldThreads.length; j++) {
|
||||||
|
if (newThreads[j].getId() == ((CThread)oldThreads[i]).getId()) {
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
cList.add(new Integer(newThreads[i].getId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!cList.isEmpty()) {
|
||||||
|
MIThreadCreatedEvent[] events = new MIThreadCreatedEvent[cList.size()];
|
||||||
|
for (int j = 0; j < events.length; j++) {
|
||||||
|
int id = ((Integer)cList.get(j)).intValue();
|
||||||
|
events[j] = new MIThreadCreatedEvent(id);
|
||||||
|
}
|
||||||
|
MISession miSession = session.getMISession();
|
||||||
|
miSession.fireEvents(events);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Fire destroyedEvent for old threads.
|
// Fire destroyedEvent for old threads.
|
||||||
if (oldThreads != null && oldThreads.length > 0) {
|
if (oldThreads != null && oldThreads.length > 0) {
|
||||||
List dList = new ArrayList(oldThreads.length);
|
List dList = new ArrayList(oldThreads.length);
|
||||||
for (int i = 0; i < oldThreads.length; i++) {
|
for (int i = 0; i < oldThreads.length; i++) {
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
for (int j = 0; j < newThreads.length; j++) {
|
for (int j = 0; newThreads != null && j < newThreads.length; j++) {
|
||||||
if (newThreads[j].getId() == ((CThread)oldThreads[i]).getId()) {
|
if (newThreads[j].getId() == ((CThread)oldThreads[i]).getId()) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
|
@ -235,6 +262,20 @@ public class CTarget implements ICDITarget {
|
||||||
return currentThreads;
|
return currentThreads;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ICDIThread getThread(int tid) {
|
||||||
|
CThread th = null;
|
||||||
|
if (currentThreads != null) {
|
||||||
|
for (int i = 0; i < currentThreads.length; i++) {
|
||||||
|
CThread cthread = (CThread)currentThreads[i];
|
||||||
|
if (cthread.getId() == tid) {
|
||||||
|
th = cthread;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return th;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#restart()
|
* @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#restart()
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.eclipse.cdt.debug.mi.core.cdi;
|
package org.eclipse.cdt.debug.mi.core.cdi.model;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -8,8 +8,8 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIException;
|
import org.eclipse.cdt.debug.mi.core.MIException;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
import org.eclipse.cdt.debug.mi.core.MIFormat;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.model.CObject;
|
import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.model.CTarget;
|
import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
|
import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIDataWriteMemory;
|
import org.eclipse.cdt.debug.mi.core.command.MIDataWriteMemory;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo;
|
|
@ -82,7 +82,7 @@ public class Register extends CObject implements ICDIRegister, ICDIValue {
|
||||||
/**
|
/**
|
||||||
* return the MI regno.
|
* return the MI regno.
|
||||||
*/
|
*/
|
||||||
public int getId() {
|
public int getID() {
|
||||||
return regObject.getId();
|
return regObject.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue