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
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:
-
Field Summary
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
ConstructorDescriptionIsolatedEntrySubModel
(Program program) Construct aIsolatedEntrySubModel
subroutine on a program.IsolatedEntrySubModel
(Program program, boolean includeExternals) Construct aIsolatedEntrySubModel
subroutine on a program. -
Method Summary
Modifier and TypeMethodDescriptiongetName()
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 Details
-
ISOLATED_MODEL_NAME
- See Also:
-
-
Constructor Details
-
IsolatedEntrySubModel
Construct aIsolatedEntrySubModel
subroutine on a program.- Parameters:
program
- program to create blocks from.
-
IsolatedEntrySubModel
Construct aIsolatedEntrySubModel
subroutine on a program.- Parameters:
program
- program to create blocks from.includeExternals
- externals are included if true
-
-
Method Details
-
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
Description copied from interface:CodeBlockModel
Returns the model name.- Specified by:
getName
in interfaceCodeBlockModel
- Overrides:
getName
in classOverlapCodeSubModel
- Returns:
- the model name
- See Also:
-