Package ghidra.app.util.demangler
Class DemangledThunk
java.lang.Object
ghidra.app.util.demangler.DemangledObject
ghidra.app.util.demangler.DemangledThunk
- All Implemented Interfaces:
Demangled
-
Field Summary
Fields inherited from class ghidra.app.util.demangler.DemangledObject
basedName, EMPTY_STRING, isRestrict, isStatic, isThunk, isUnaligned, isVirtual, mangled, memberScope, namespace, NAMESPACE_SEPARATOR, originalDemangled, SPACE, SPACE_PATTERN, specialPrefix, storageClass, visibility
-
Constructor Summary
ConstructorsConstructorDescriptionDemangledThunk
(String mangled, String originalDemangled, DemangledFunction thunkedFunctionObject) -
Method Summary
Modifier and TypeMethodDescriptionboolean
applyTo
(Program program, Address thunkAddress, DemanglerOptions options, TaskMonitor monitor) getSignature
(boolean format) Returns a complete signature for the demangled symbol.protected boolean
isAlreadyDemangled
(Program program, Address address) Determine if the symbol at address has already been demangled.void
void
setSignaturePrefix
(String prefix) Methods inherited from class ghidra.app.util.demangler.DemangledObject
applyDemangledName, applyDemangledName, applyPlateCommentOnly, createNamespace, demangledNameSuccessfully, ensureNameLength, generatePlateComment, getBasedName, getDemangledName, getErrorMessage, getMangledString, getMemberScope, getName, getNamespace, getNamespaceName, getNamespaceString, getOriginalDemangled, getSignature, getSpecialPrefix, getStorageClass, getVisibility, isConst, isPointer64, isRestrict, isStatic, isThunk, isUnaligned, isVirtual, isVolatile, setBackupPlateComment, setBasedName, setConst, setErrorMessage, setMemberScope, setName, setNamespace, setPointer64, setRestrict, setSpecialPrefix, setStatic, setStorageClass, setThunk, setUnaligned, setVirtual, setVisibilty, setVolatile, toString
-
Constructor Details
-
DemangledThunk
public DemangledThunk(String mangled, String originalDemangled, DemangledFunction thunkedFunctionObject)
-
-
Method Details
-
setCovariantReturnThunk
public void setCovariantReturnThunk() -
setSignaturePrefix
-
getSignature
Description copied from class:DemangledObject
Returns a complete signature for the demangled symbol.
For example: "unsigned long foo" "unsigned char * ClassA::getFoo(float, short *)" "void * getBar(int **, MyStruct &)"
Note: based on the underlying mangling scheme, the return type may or may not be specified in the signature.- Specified by:
getSignature
in classDemangledObject
- Parameters:
format
- true if signature should be pretty printed- Returns:
- a complete signature for the demangled symbol
-
isAlreadyDemangled
Description copied from class:DemangledObject
Determine if the symbol at address has already been demangled. While memory symbols check for presence of demangledName, external symbols simply check if demangled/alternate name has already been assigned.- Overrides:
isAlreadyDemangled
in classDemangledObject
- Parameters:
program
- the program being modifiedaddress
- address of demangled symbol- Returns:
- true if symbol at address has already been demangled
-
applyTo
public boolean applyTo(Program program, Address thunkAddress, DemanglerOptions options, TaskMonitor monitor) throws Exception - Overrides:
applyTo
in classDemangledObject
- Throws:
Exception
-