Class EhFrameSection
java.lang.Object
ghidra.app.plugin.exceptionhandlers.gcc.sections.EhFrameSection
- All Implemented Interfaces:
- CieSource
Parses the call frame information exception handling structures within an '.eh_frame' 
 memory section.
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionEhFrameSection(TaskMonitor monitor, Program program) Constructor for an eh frame section.
- 
Method SummaryModifier and TypeMethodDescriptionanalyze(int fdeTableCount) Analyzes and annotates the eh frame section.protected voidcreateAugmentationData(List<RegionDescriptor> regions, Cie cie) Creates data structures for the specified Common Information Entry (CIE) and its Frame Description Entries (FDEs) as indicated by the regions.protected CieCreates the data for a common information entry (CIE) at the address and puts a label and comment on it.protected voidcreateCieComment(Address curAddress) Creates a comment indicating there is an CIE at the address.protected voidcreateCieLabel(Address curAddress) Creates a label indicating there is an CIE at the address.protected voidcreateFdeComment(Address curAddress) Creates a comment indicating there is an FDE at the address.For the provided address, return a Common Information Entry (CIE)protected CiegetCieOrCreateIfMissing(Address curAddress, boolean isInDebugFrame) This class maintains a lookup of common information entry (CIE) objects; this retrieves an existing object (by address), and creates a new CIE if not found.
- 
Field Details- 
EH_FRAME_BLOCK_NAME- See Also:
 
- 
monitor
- 
program
 
- 
- 
Constructor Details- 
EhFrameSectionConstructor for an eh frame section.- Parameters:
- monitor- a status monitor for indicating progress or allowing a task to be cancelled.
- program- the program containing this eh frame section.
 
 
- 
- 
Method Details- 
getCieDescription copied from interface:CieSourceFor the provided address, return a Common Information Entry (CIE)- Parameters:
- currAddress- the address with the CIE
- Returns:
- the Cie at currAddress
- Throws:
- MemoryAccessException- if memory for the CIE couldn't be read
- ExceptionHandlerFrameException- if a problem was encountered
 
- 
analyzepublic List<RegionDescriptor> analyze(int fdeTableCount) throws MemoryAccessException, AddressOutOfBoundsException, ExceptionHandlerFrameException Analyzes and annotates the eh frame section.- Parameters:
- fdeTableCount- the number of exception handler FDEs.
- Returns:
- the region descriptors for the eh frame section.
- Throws:
- MemoryAccessException- if memory couldn't be read/written while processing the eh frame.
- AddressOutOfBoundsException- if one or more expected addresses weren't in the program.
- ExceptionHandlerFrameException- if a problem was encountered determining eh frame data.
 
- 
createAugmentationDataCreates data structures for the specified Common Information Entry (CIE) and its Frame Description Entries (FDEs) as indicated by the regions.- Parameters:
- regions- the region descriptors for the FDEs.
- cie- the CIE for the FDEs.
 
- 
createCieprotected Cie createCie(Address curAddress, boolean isInDebugFrame) throws MemoryAccessException, ExceptionHandlerFrameException Creates the data for a common information entry (CIE) at the address and puts a label and comment on it.- Parameters:
- curAddress- the address with the CIE
- isInDebugFrame- true indicates the frame containing this CIE is a debug frame.
- Returns:
- the Ciethat was created
- Throws:
- MemoryAccessException- if memory for the CIE couldn't be read
- ExceptionHandlerFrameException- if a problem was encountered
 
- 
getCieOrCreateIfMissingprotected Cie getCieOrCreateIfMissing(Address curAddress, boolean isInDebugFrame) throws MemoryAccessException, ExceptionHandlerFrameException This class maintains a lookup of common information entry (CIE) objects; this retrieves an existing object (by address), and creates a new CIE if not found.- Parameters:
- curAddress- the address with the CIE
- isInDebugFrame- true indicates the frame containing this CIE is a debug frame.
- Returns:
- the Ciethat was either previously created, or a newly minted object.
- Throws:
- MemoryAccessException- if memory for the CIE couldn't be read
- ExceptionHandlerFrameException- if a problem was encountered
 
- 
createCieLabelCreates a label indicating there is an CIE at the address.- Parameters:
- curAddress- the address with the CIE
 
- 
createCieCommentCreates a comment indicating there is an CIE at the address.- Parameters:
- curAddress- the address with the CIE
 
- 
createFdeCommentCreates a comment indicating there is an FDE at the address.- Parameters:
- curAddress- the address with the FDE
 
 
-