[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] MemoryManager fixes
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.35
diff -u -r1.35 ChangeLog
--- ChangeLog 18 Nov 2002 19:04:55 -0000 1.35
+++ ChangeLog 20 Nov 2002 14:39:12 -0000
@@ -1,3 +1,10 @@
+2002-11-19 Alain Magloire
+
+ * src/.../mi/core/cdi/MemoryManager.java (compareBlocks):
+ The startAddress() may have change for example if we were
+ watching "char *p;" and the address move "p++". Take this
+ into account now.
+
2002-11-18 Alain Magloire
* src/.../mi/core/cdi/StackFrame.java (getCurrentStackFrame):
Index: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java,v
retrieving revision 1.10
diff -u -r1.10 MemoryManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java 1 Nov 2002 16:43:24 -0000 1.10
+++ src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java 20 Nov 2002 14:39:12 -0000
@@ -87,17 +87,16 @@
* @return Long[] array of modified addresses.
*/
Long[] compareBlocks (MemoryBlock oldBlock, MemoryBlock newBlock) throws CDIException {
- if (oldBlock.getStartAddress() != newBlock.getStartAddress()) {
- return new Long[0];
- }
byte[] oldBytes = oldBlock.getBytes();
byte[] newBytes = newBlock.getBytes();
- List aList = new ArrayList(oldBytes.length);
- for (int i = 0; i < oldBytes.length; i++) {
- if (i < newBytes.length) {
+ List aList = new ArrayList(newBytes.length);
+ for (int i = 0; i < newBytes.length; i++) {
+ if (i < oldBytes.length) {
if (oldBytes[i] != newBytes[i]) {
- aList.add(new Long(oldBlock.getStartAddress() + i));
+ aList.add(new Long(newBlock.getStartAddress() + i));
}
+ } else {
+ aList.add(new Long(newBlock.getStartAddress() + i));
}
}
return (Long[])aList.toArray(new Long[0]);