Package ghidra.program.model.block
Class IsolatedEntrySubModel
- java.lang.Object
-
- ghidra.program.model.block.OverlapCodeSubModel
-
- ghidra.program.model.block.IsolatedEntrySubModel
-
- All Implemented Interfaces:
CodeBlockModel
,SubroutineBlockModel
public class IsolatedEntrySubModel extends OverlapCodeSubModel
IsolatedEntryCodeSubModel
(S-model) defines subroutines with a unique entry point, which may share code with other subroutines. Each entry- point may either be a source or called entry-point and is identified using the MultEntSubModel. This model extends the OverlapCodeSubModel, redefining the set of addresses contained within each subroutine. Unlike the OverlapCodeSubModel, the address set of a IsolatedEntryCodeSubModel subroutine is permitted to span entry-points of other subroutines based upon the possible flows from its entry- point.- See Also:
CodeBlockModel
,OverlapCodeSubModel
,MultEntSubModel
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ISOLATED_MODEL_NAME
-
Fields inherited from class ghidra.program.model.block.OverlapCodeSubModel
foundOSubs, listing, modelM, OVERLAP_MODEL_NAME, program
-
Fields inherited from interface ghidra.program.model.block.CodeBlockModel
emptyBlockArray
-
-
Constructor Summary
Constructors Constructor Description IsolatedEntrySubModel(Program program)
Construct aIsolatedEntrySubModel
subroutine on a program.IsolatedEntrySubModel(Program program, boolean includeExternals)
Construct aIsolatedEntrySubModel
subroutine on a program.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getName()
Returns the model name.protected CodeBlock
getSubroutine(Address mStartAddr, TaskMonitor monitor)
Get the subroutine code block which starts at the specified address which is an entry point of a Model-M subroutine.-
Methods inherited from class ghidra.program.model.block.OverlapCodeSubModel
allowsBlockOverlap, createSub, externalsIncluded, getBaseSubroutineModel, getBasicBlockModel, getCodeBlockAt, getCodeBlocks, getCodeBlocksContaining, getCodeBlocksContaining, getDestinations, getFirstCodeBlockContaining, getFlowType, getListing, getModelM, getName, getNumDestinations, getNumSources, getProgram, getSources
-
-
-
-
Field Detail
-
ISOLATED_MODEL_NAME
public static final java.lang.String ISOLATED_MODEL_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
IsolatedEntrySubModel
public IsolatedEntrySubModel(Program program)
Construct aIsolatedEntrySubModel
subroutine on a program.- Parameters:
program
- program to create blocks from.
-
IsolatedEntrySubModel
public IsolatedEntrySubModel(Program program, boolean includeExternals)
Construct aIsolatedEntrySubModel
subroutine on a program.- Parameters:
program
- program to create blocks from.includeExternals
- externals are included if true
-
-
Method Detail
-
getSubroutine
protected CodeBlock getSubroutine(Address mStartAddr, TaskMonitor monitor) throws CancelledException
Get the subroutine code block which starts at the specified address which is an entry point of a Model-M subroutine. Classes which extend this class should implement this method.- Overrides:
getSubroutine
in classOverlapCodeSubModel
- Parameters:
mStartAddr
- = a Model-M subroutine entry point.monitor
- task monitor which allows user to cancel operation.- Returns:
- a subroutine code block
- Throws:
CancelledException
- if the monitor cancels the operation.
-
getName
public java.lang.String getName()
Description copied from interface:CodeBlockModel
Returns the model name.- Specified by:
getName
in interfaceCodeBlockModel
- Overrides:
getName
in classOverlapCodeSubModel
- Returns:
- the model name
- See Also:
CodeBlockModel.getName()
-
-