1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Implementing the memory view.

This commit is contained in:
Mikhail Khodjaiants 2002-10-28 02:46:38 +00:00
parent 7c6cf4d75f
commit 873f660e03
3 changed files with 36 additions and 11 deletions

View file

@ -1,3 +1,7 @@
2002-10-27 Mikhail Khodjaiants
* IFormattedMemoryBlock.java: added the 'setItemValue' method.
* CFormattedMemoryBlock.java: implementation of the 'setItemValue' method.
2002-10-16 Alain Magloire 2002-10-16 Alain Magloire
* src/.../core/cdi/model/ICDIMemoryBlock.java (refresh): * src/.../core/cdi/model/ICDIMemoryBlock.java (refresh):

View file

@ -85,6 +85,18 @@ public interface IFormattedMemoryBlock extends IMemoryBlock
*/ */
IFormattedMemoryBlockRow[] getRows(); IFormattedMemoryBlockRow[] getRows();
/**
* Sets the value of data item in this block at the specified
* index within this block to the spcified value.
* The index is zero based.
*
* @param index the index of item to change
* @param newValue the new value
* @throws DebugException if this method fails. Reasons include:
*/
void setItemValue( int index, String newValue ) throws DebugException;
char getPaddingCharacter(); char getPaddingCharacter();
long nextRowAddress(); long nextRowAddress();

View file

@ -6,6 +6,7 @@
package org.eclipse.cdt.debug.internal.core.model; package org.eclipse.cdt.debug.internal.core.model;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.CDebugCorePlugin;
@ -83,6 +84,7 @@ public class CFormattedMemoryBlock extends CDebugElement
private char fPaddingChar = '.'; private char fPaddingChar = '.';
private List fRows = null; private List fRows = null;
private Long[] fChangedAddresses = new Long[0]; private Long[] fChangedAddresses = new Long[0];
private HashSet fDirtyBytes;
/** /**
* Constructor for CFormattedMemoryBlock. * Constructor for CFormattedMemoryBlock.
@ -96,16 +98,7 @@ public class CFormattedMemoryBlock extends CDebugElement
int numberOfRows, int numberOfRows,
int numberOfColumns ) int numberOfColumns )
{ {
super( target ); this( target, cdiMemoryBlock, addressExpression, format, wordSize, numberOfRows, numberOfColumns, '\0' );
fCDIMemoryBlock = cdiMemoryBlock;
fAddressExpression = addressExpression;
fFormat = format;
fWordSize = wordSize;
fNumberOfRows = numberOfRows;
fNumberOfColumns = numberOfColumns;
fDisplayAscii = false;
fPaddingChar = 0;
getCDISession().getEventManager().addEventListener( this );
} }
/** /**
@ -130,6 +123,7 @@ public class CFormattedMemoryBlock extends CDebugElement
fNumberOfColumns = numberOfColumns; fNumberOfColumns = numberOfColumns;
fDisplayAscii = true; fDisplayAscii = true;
fPaddingChar = paddingChar; fPaddingChar = paddingChar;
fDirtyBytes = new HashSet();
getCDISession().getEventManager().addEventListener( this ); getCDISession().getEventManager().addEventListener( this );
} }
@ -353,6 +347,8 @@ public class CFormattedMemoryBlock extends CDebugElement
fCDIMemoryBlock = null; fCDIMemoryBlock = null;
} }
getCDISession().getEventManager().removeEventListener( this ); getCDISession().getEventManager().removeEventListener( this );
fDirtyBytes.clear();
fDirtyBytes = null;
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -439,7 +435,8 @@ public class CFormattedMemoryBlock extends CDebugElement
private void handleChangedEvent( ICDIMemoryChangedEvent event ) private void handleChangedEvent( ICDIMemoryChangedEvent event )
{ {
resetRows(); resetRows();
resetDirtyBytes();
setChangedAddresses( event.getAddresses() ); setChangedAddresses( event.getAddresses() );
fireChangeEvent( DebugEvent.CONTENT ); fireChangeEvent( DebugEvent.CONTENT );
} }
@ -474,4 +471,16 @@ public class CFormattedMemoryBlock extends CDebugElement
{ {
getCDIMemoryBlock().setFrozen( frozen ); getCDIMemoryBlock().setFrozen( frozen );
} }
/**
* @see org.eclipse.cdt.debug.core.IFormattedMemoryBlock#setItemValue(int, String)
*/
public void setItemValue( int index, String newValue ) throws DebugException
{
}
private void resetDirtyBytes()
{
fDirtyBytes.clear();
}
} }