GP-0: Fixed WatchesProviderTest

This commit is contained in:
Dan 2021-04-06 15:47:18 -04:00
parent f421f49d78
commit d384a191a4
5 changed files with 33 additions and 3 deletions

View file

@ -152,6 +152,11 @@ public class TraceMemoryStatePcodeExecutorStatePiece extends
return set.isEmpty() ? TraceMemoryState.KNOWN : TraceMemoryState.UNKNOWN;
}
@Override
protected TraceMemoryState getFromNullSpace(int size) {
return TraceMemoryState.UNKNOWN;
}
@Override
public MemBuffer getConcreteBuffer(Address address) {
throw new AssertionError("Cannot make TraceMemoryState into a concrete buffer");

View file

@ -695,11 +695,22 @@ public class DBTraceMemorySpace implements Unfinished, TraceMemorySpace, DBTrace
return result;
}
protected int truncateLen(int len, Address start) {
long maxLen = start.getAddressSpace().getMaxAddress().subtract(start) + 1;
if (maxLen == 0) {
// Only happens when min=0 and max=ffff_ffff_ffff_ffff
return len;
}
return MathUtilities.unsignedMin(len, maxLen);
}
@Override
public int getViewBytes(long snap, Address start, ByteBuffer buf) {
AddressRange toRead;
int len = MathUtilities.unsignedMin(buf.remaining(),
start.getAddressSpace().getMaxAddress().subtract(start) + 1);
int len = truncateLen(buf.remaining(), start);
if (len == 0) {
return 0;
}
try {
toRead = new AddressRangeImpl(start, len);
}