Package ghidra.app.util.bin.format.dwarf
Class DWARFFunction
java.lang.Object
ghidra.app.util.bin.format.dwarf.DWARFFunction
Represents a function that was read from DWARF information.
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionlong
boolean
boolean
boolean
boolean
-
Method Summary
Modifier and TypeMethodDescriptionasFunctionDefinition
(boolean includeCC) Returns aFunctionDefinition
that reflects this function's information.void
getBody()
long
static AddressRange
getFuncBody
(DIEAggregate diea, boolean flattenDisjoint) static DWARFRangeList
getLocalVarByOffset
(long offset) Returns the DWARFVariable that starts at the specified stack offset.Returns the parameters of this function asParameterDefinition
s.getParameters
(boolean includeStorageDetail) Returns this function's parameters as a list ofParameter
instances.boolean
boolean
boolean
isInLocalVarStorageArea
(long offset) Returns true if the specified stack offset is within the function's local variable storage area.static DWARFFunction
read
(DIEAggregate diea) Create a function instance from the information found in the specified DIEA.void
boolean
syncWithExistingGhidraFunction
(boolean createIfMissing) toString()
void
-
Field Details
-
diea
-
name
-
namespace
-
address
-
frameBase
public long frameBase -
function
-
callingConventionName
-
retval
-
params
-
varArg
public boolean varArg -
localVars
-
localVarErrors
public boolean localVarErrors -
signatureCommitMode
-
noReturn
public boolean noReturn -
sourceInfo
-
isExternal
public boolean isExternal
-
-
Method Details
-
read
Create a function instance from the information found in the specified DIEA.- Parameters:
diea
- DW_TAG_subprogramDIEAggregate
- Returns:
- new
DWARFFunction
, or null if invalid DWARF information - Throws:
IOException
- if error accessing attribute valuesDWARFExpressionException
- if error accessing attribute values
-
getProgram
-
getDescriptiveName
-
getRangeList
-
getCallingConventionName
-
getBody
-
getEntryPc
public long getEntryPc() -
getLocalVarByOffset
Returns the DWARFVariable that starts at the specified stack offset.- Parameters:
offset
- stack offset- Returns:
- local variable that starts at offset, or null if not present
-
isInLocalVarStorageArea
public boolean isInLocalVarStorageArea(long offset) Returns true if the specified stack offset is within the function's local variable storage area.- Parameters:
offset
- stack offset to test- Returns:
- true if stack offset is within this function's local variable area
-
hasConflictWithParamStorage
- Throws:
InvalidInputException
-
hasConflictWithExistingLocalVariableStorage
public boolean hasConflictWithExistingLocalVariableStorage(DWARFVariable dvar) throws InvalidInputException - Throws:
InvalidInputException
-
getAllParamNames
-
getAllLocalVariableNames
-
getExistingLocalVariableNames
-
getNonParamSymbolNames
-
getParameters
Returns this function's parameters as a list ofParameter
instances.- Parameters:
includeStorageDetail
- boolean flag, if true storage information will be included, if false, VariableStorage.UNASSIGNED_STORAGE will be used- Returns:
- list of Parameters
- Throws:
InvalidInputException
- if bad information in param storage
-
getParameterDefinitions
Returns the parameters of this function asParameterDefinition
s.- Returns:
- array of
ParameterDefinition
s
-
commitLocalVariable
-
getFuncBody
public static AddressRange getFuncBody(DIEAggregate diea, boolean flattenDisjoint) throws IOException - Throws:
IOException
-
getFuncBodyRanges
- Throws:
IOException
-
syncWithExistingGhidraFunction
public boolean syncWithExistingGhidraFunction(boolean createIfMissing) -
runFixups
public void runFixups() -
updateFunctionSignature
public void updateFunctionSignature() -
asFunctionDefinition
Returns aFunctionDefinition
that reflects this function's information.- Parameters:
includeCC
- boolean flag, if true the returned funcdef will include calling convention- Returns:
FunctionDefinition
that reflects this function's information
-
toString
-