Package ghidra.program.database
Class ProgramAddressFactory
- java.lang.Object
-
- ghidra.program.model.address.DefaultAddressFactory
-
- ghidra.program.database.ProgramAddressFactory
-
- All Implemented Interfaces:
AddressFactory
public class ProgramAddressFactory extends DefaultAddressFactory
-
-
Constructor Summary
Constructors Constructor Description ProgramAddressFactory(Language language, CompilerSpec compilerSpec)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addOverlayAddressSpace(OverlayAddressSpace ovSpace)
protected OverlayAddressSpace
addOverlayAddressSpace(java.lang.String name, boolean preserveName, AddressSpace originalSpace, long minOffset, long maxOffset)
Create a new OverlayAddressSpace based upon the given overlay blockName and base AddressSpaceAddress
getAddress(int spaceID, long offset)
Get an address using the addressSpace with the given id and having the given offset.Address
getAddress(java.lang.String addrString)
Create an address from String.AddressSpace
getStackSpace()
Returns the "stack" address space.protected void
removeOverlaySpace(java.lang.String name)
protected java.lang.String
renameOverlaySpace(java.lang.String oldOverlaySpaceName, java.lang.String newName)
Rename overlay with preferred newName.-
Methods inherited from class ghidra.program.model.address.DefaultAddressFactory
addAddressSpace, equals, getAddressSet, getAddressSet, getAddressSpace, getAddressSpace, getAddressSpaces, getAllAddresses, getAllAddresses, getAllAddressSpaces, getConstantAddress, getConstantSpace, getDefaultAddressSpace, getIndex, getNumAddressSpaces, getPhysicalSpace, getPhysicalSpaces, getRegisterSpace, getUniqueSpace, hasMultipleMemorySpaces, isValidAddress, oldGetAddressFromLong, removeAddressSpace
-
-
-
-
Constructor Detail
-
ProgramAddressFactory
public ProgramAddressFactory(Language language, CompilerSpec compilerSpec)
-
-
Method Detail
-
getStackSpace
public AddressSpace getStackSpace()
Description copied from interface:AddressFactory
Returns the "stack" address space.- Specified by:
getStackSpace
in interfaceAddressFactory
- Overrides:
getStackSpace
in classDefaultAddressFactory
-
addOverlayAddressSpace
protected void addOverlayAddressSpace(OverlayAddressSpace ovSpace) throws DuplicateNameException
- Throws:
DuplicateNameException
-
addOverlayAddressSpace
protected OverlayAddressSpace addOverlayAddressSpace(java.lang.String name, boolean preserveName, AddressSpace originalSpace, long minOffset, long maxOffset)
Create a new OverlayAddressSpace based upon the given overlay blockName and base AddressSpace- Parameters:
name
- the preferred name of the overlay address space to be created. This name may be modified if preserveName is false to produce a valid overlay space name and avoid duplication.preserveName
- if true specified name will be preserved, if false an unique acceptable overlay space name will be generated from the specified name.originalSpace
- the base AddressSpace to overlayminOffset
- the min offset of the spacemaxOffset
- the max offset of the space- Returns:
- the new overlay space
- Throws:
java.lang.IllegalArgumentException
- if originalSpace is not permitted or preserveName is true and a space with specified name already exists.
-
getAddress
public Address getAddress(int spaceID, long offset)
Description copied from interface:AddressFactory
Get an address using the addressSpace with the given id and having the given offset.- Specified by:
getAddress
in interfaceAddressFactory
- Overrides:
getAddress
in classDefaultAddressFactory
- Parameters:
spaceID
- the id of the address space to use to create the new address.offset
- the offset of the new address to be created.- Returns:
- the new address.
-
getAddress
public Address getAddress(java.lang.String addrString)
Description copied from interface:AddressFactory
Create an address from String. Attempts to use the "default" address space first. Otherwise loops through each addressSpace, returning the first valid address that any addressSpace creates from the string. Returns an Address if the string is valid, otherwise null.- Specified by:
getAddress
in interfaceAddressFactory
- Overrides:
getAddress
in classDefaultAddressFactory
- See Also:
AddressFactory.getAddress(java.lang.String)
-
removeOverlaySpace
protected void removeOverlaySpace(java.lang.String name)
-
renameOverlaySpace
protected java.lang.String renameOverlaySpace(java.lang.String oldOverlaySpaceName, java.lang.String newName)
Rename overlay with preferred newName. Actual name used will be returned and may differ from specified newName to ensure validity and avoid duplication.- Overrides:
renameOverlaySpace
in classDefaultAddressFactory
- Parameters:
oldOverlaySpaceName
- the existing overlay address space namenewName
- the preferred new name of the overlay address space. This name may be modified to produce a valid overlay space name to avoid duplication.- Returns:
- new name applied to existing overlay space
-
-