mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
GP-1822: backing out register changes, making Objects handle Strings
This commit is contained in:
parent
41c17c0ea2
commit
9ae62b1e63
6 changed files with 50 additions and 16 deletions
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue