GP-1822: backing out register changes, making Objects handle Strings

This commit is contained in:
d-millar 2022-03-17 18:51:05 -04:00
parent 41c17c0ea2
commit 9ae62b1e63
6 changed files with 50 additions and 16 deletions

View file

@ -30,7 +30,6 @@ import ghidra.dbg.target.TargetRegisterBank;
import ghidra.dbg.target.schema.*;
import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode;
import ghidra.dbg.util.ConversionUtils;
import ghidra.program.model.address.AddressSpace;
@TargetObjectSchemaInfo(
name = "RegisterContainer",
@ -105,7 +104,6 @@ public class DbgModelTargetRegisterContainerImpl extends DbgModelTargetObjectImp
@Override
public CompletableFuture<? extends Map<String, byte[]>> readRegistersNamed(
Collection<String> names) {
AddressSpace space = getModel().getAddressSpace("ram");
return model.gateFuture(thread.listRegisters().thenCompose(regs -> {
if (regs.size() != registersByName.size() || getCachedElements().isEmpty()) {
return requestElements(false);
@ -138,8 +136,7 @@ public class DbgModelTargetRegisterContainerImpl extends DbgModelTargetObjectImp
if (value.longValue() != 0) {
String newval = reg.getName() + " : " + value.toString(16);
reg.changeAttributes(List.of(), Map.of( //
DISPLAY_ATTRIBUTE_NAME, newval, //
"Address", space.getAddress(value.longValue()) //
DISPLAY_ATTRIBUTE_NAME, newval //
), "Refreshed");
reg.setModified(!value.toString(16).equals(oldval));
}

View file

@ -24,7 +24,6 @@ import agent.dbgeng.model.iface2.DbgModelTargetRegisterContainerAndBank;
import ghidra.dbg.target.TargetRegister;
import ghidra.dbg.target.schema.*;
import ghidra.dbg.util.PathUtils;
import ghidra.program.model.address.Address;
@TargetObjectSchemaInfo(
name = "RegisterDescriptor",
@ -34,7 +33,6 @@ import ghidra.program.model.address.Address;
@TargetAttributeType(
name = TargetRegister.CONTAINER_ATTRIBUTE_NAME,
type = DbgModelTargetRegisterContainerImpl.class),
@TargetAttributeType(name = "Address", type = Address.class),
@TargetAttributeType(type = Void.class) })
public class DbgModelTargetRegisterImpl extends DbgModelTargetObjectImpl
implements DbgModelTargetRegister {