mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
Merge remote-tracking branch 'origin/GP-3823_Dan_traceRmiWindowsLaunchers--SQUASHED'
This commit is contained in:
commit
968a36f2b5
33 changed files with 1206 additions and 1303 deletions
|
@ -195,14 +195,22 @@ public class DBTraceObjectMemoryRegion implements TraceObjectMemoryRegion, DBTra
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AddressRange getRange(long snap) {
|
||||
try (LockHold hold = object.getTrace().lockRead()) {
|
||||
// TODO: Caching without regard to snap seems bad
|
||||
return range = TraceObjectInterfaceUtils.getValue(object, snap,
|
||||
TargetMemoryRegion.RANGE_ATTRIBUTE_NAME, AddressRange.class, range);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AddressRange getRange() {
|
||||
try (LockHold hold = object.getTrace().lockRead()) {
|
||||
if (object.getLife().isEmpty()) {
|
||||
return range;
|
||||
}
|
||||
return range = TraceObjectInterfaceUtils.getValue(object, getCreationSnap(),
|
||||
TargetMemoryRegion.RANGE_ATTRIBUTE_NAME, AddressRange.class, range);
|
||||
return getRange(getCreationSnap());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -213,6 +221,12 @@ public class DBTraceObjectMemoryRegion implements TraceObjectMemoryRegion, DBTra
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address getMinAddress(long snap) {
|
||||
AddressRange range = getRange(snap);
|
||||
return range == null ? null : range.getMinAddress();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address getMinAddress() {
|
||||
AddressRange range = getRange();
|
||||
|
@ -226,6 +240,12 @@ public class DBTraceObjectMemoryRegion implements TraceObjectMemoryRegion, DBTra
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address getMaxAddress(long snap) {
|
||||
AddressRange range = getRange(snap);
|
||||
return range == null ? null : range.getMaxAddress();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address getMaxAddress() {
|
||||
AddressRange range = getRange();
|
||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Set;
|
|||
|
||||
import ghidra.dbg.target.TargetMemoryRegion;
|
||||
import ghidra.dbg.target.TargetObject;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.address.AddressRange;
|
||||
import ghidra.trace.model.Lifespan;
|
||||
import ghidra.trace.model.target.TraceObjectInterface;
|
||||
|
@ -39,6 +40,12 @@ public interface TraceObjectMemoryRegion extends TraceMemoryRegion, TraceObjectI
|
|||
|
||||
void setRange(Lifespan lifespan, AddressRange range);
|
||||
|
||||
AddressRange getRange(long snap);
|
||||
|
||||
Address getMinAddress(long snap);
|
||||
|
||||
Address getMaxAddress(long snap);
|
||||
|
||||
void setFlags(Lifespan lifespan, Collection<TraceMemoryFlag> flags);
|
||||
|
||||
void addFlags(Lifespan lifespan, Collection<TraceMemoryFlag> flags);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue