mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 08:55:25 +02:00
2005-03-23 Alain Magloire
Changes in the CDI ICDIMemoryBlock && ICDIMemoryBlockManagement API. * cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java * cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java * cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
This commit is contained in:
parent
02cff41bd7
commit
106f442a0d
4 changed files with 26 additions and 23 deletions
|
@ -1,3 +1,9 @@
|
|||
2005-03-23 Alain Magloire
|
||||
Changes in the CDI ICDIMemoryBlock && ICDIMemoryBlockManagement API.
|
||||
* cdi/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java
|
||||
* cdi/org/eclipse/cdt/debug/mi/core/cdi/model/MemoryBlock.java
|
||||
* cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java
|
||||
|
||||
2005-03-09 Mikhail Khodjaiants
|
||||
Fix for bug 87546: Obsolete debug MI settings in Preference need to be removed.
|
||||
* RegisterManager.java
|
||||
|
|
|
@ -134,16 +134,17 @@ public class MemoryManager extends Manager {
|
|||
MemoryBlock cloneBlock(MemoryBlock block) throws CDIException {
|
||||
Target target = (Target)block.getTarget();
|
||||
String exp = block.getExpression();
|
||||
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(target.getMISession(), exp, (int)block.getLength());
|
||||
return new MemoryBlock(target, exp, info);
|
||||
int wordSize = block.getWordSize();
|
||||
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(target.getMISession(), exp, (int)block.getLength(), wordSize);
|
||||
return new MemoryBlock(target, exp, wordSize, info);
|
||||
}
|
||||
|
||||
/**
|
||||
* Post a -data-read-memory to gdb/mi.
|
||||
*/
|
||||
MIDataReadMemoryInfo createMIDataReadMemoryInfo(MISession miSession, String exp, int length) throws CDIException {
|
||||
MIDataReadMemoryInfo createMIDataReadMemoryInfo(MISession miSession, String exp, int units, int wordSize) throws CDIException {
|
||||
CommandFactory factory = miSession.getCommandFactory();
|
||||
MIDataReadMemory mem = factory.createMIDataReadMemory(0, exp, MIFormat.HEXADECIMAL, 1, 1, length, null);
|
||||
MIDataReadMemory mem = factory.createMIDataReadMemory(0, exp, MIFormat.HEXADECIMAL, wordSize, 1, units, null);
|
||||
try {
|
||||
miSession.postCommand(mem);
|
||||
MIDataReadMemoryInfo info = mem.getMIDataReadMemoryInfo();
|
||||
|
@ -156,14 +157,9 @@ public class MemoryManager extends Manager {
|
|||
}
|
||||
}
|
||||
|
||||
public ICDIMemoryBlock createMemoryBlock(Target target, BigInteger address, int length)
|
||||
throws CDIException {
|
||||
return createMemoryBlock(target, address.toString(16), length);
|
||||
}
|
||||
|
||||
public ICDIMemoryBlock createMemoryBlock(Target target, String address, int length) throws CDIException {
|
||||
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(target.getMISession(), address, length);
|
||||
ICDIMemoryBlock block = new MemoryBlock(target, address, info);
|
||||
public ICDIMemoryBlock createMemoryBlock(Target target, String address, int units, int wordSize) throws CDIException {
|
||||
MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(target.getMISession(), address, units, wordSize);
|
||||
ICDIMemoryBlock block = new MemoryBlock(target, address, wordSize, info);
|
||||
List blockList = getMemoryBlockList(target);
|
||||
blockList.add(block);
|
||||
MISession miSession = target.getMISession();
|
||||
|
|
|
@ -37,13 +37,15 @@ public class MemoryBlock extends CObject implements ICDIMemoryBlock {
|
|||
boolean dirty;
|
||||
|
||||
private MIDataReadMemoryInfo mem;
|
||||
private int fWordSize;
|
||||
private BigInteger cStartAddress; //cached start address
|
||||
private byte[] cBytes; //cached bytes
|
||||
private int[] badOffsets;
|
||||
|
||||
public MemoryBlock(Target target, String exp, MIDataReadMemoryInfo info) {
|
||||
public MemoryBlock(Target target, String exp, int wordSize, MIDataReadMemoryInfo info) {
|
||||
super(target);
|
||||
expression = exp;
|
||||
fWordSize = wordSize;
|
||||
frozen = true;
|
||||
setMIDataReadMemoryInfo(info);
|
||||
}
|
||||
|
@ -55,6 +57,13 @@ public class MemoryBlock extends CObject implements ICDIMemoryBlock {
|
|||
return expression;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the size of each memory word in bytes.
|
||||
*/
|
||||
public int getWordSize() {
|
||||
return fWordSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the internal MIDataReadMemoryInfo. All modifications into mem info should be done
|
||||
* using this method
|
||||
|
|
|
@ -888,17 +888,9 @@ public class Target extends SessionObject implements ICDITarget {
|
|||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlockManagement#createMemoryBlock(java.lang.String, int)
|
||||
*/
|
||||
public ICDIMemoryBlock createMemoryBlock(String address, int length) throws CDIException {
|
||||
public ICDIMemoryBlock createMemoryBlock(String address, int units, int wordSize) throws CDIException {
|
||||
MemoryManager memMgr = ((Session)getSession()).getMemoryManager();
|
||||
return memMgr.createMemoryBlock(this, address, length);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlockManagement#createMemoryBlock(java.math.BigInteger, int)
|
||||
*/
|
||||
public ICDIMemoryBlock createMemoryBlock(BigInteger address, int length) throws CDIException {
|
||||
MemoryManager memMgr = ((Session)getSession()).getMemoryManager();
|
||||
return memMgr.createMemoryBlock(this, address, length);
|
||||
return memMgr.createMemoryBlock(this, address, units, wordSize);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
|
Loading…
Add table
Reference in a new issue