Package ghidra.app.util.demangler
Class DemangledVariable
- java.lang.Object
-
- ghidra.app.util.demangler.DemangledObject
-
- ghidra.app.util.demangler.DemangledVariable
-
public class DemangledVariable extends DemangledObject
An interface to represent a demangled global variable.
-
-
Field Summary
-
Fields inherited from class ghidra.app.util.demangler.DemangledObject
basedName, EMPTY_STRING, isRestrict, isStatic, isThunk, isUnaligned, isVirtual, memberScope, namespace, NAMESPACE_SEPARATOR, originalMangled, SPACE, SPACE_PATTERN, specialMidfix, specialPrefix, specialSuffix, storageClass, utilDemangled, visibility
-
-
Constructor Summary
Constructors Constructor Description DemangledVariable(java.lang.String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
applyTo(Program program, Address address, DemanglerOptions options, TaskMonitor monitor)
DemangledDataType
getDataType()
Returns the data type of this variable.java.lang.String
getName()
Returns the demangled name of this object.java.lang.String
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
setDatatype(DemangledDataType datatype)
-
Methods inherited from class ghidra.app.util.demangler.DemangledObject
applyDemangledName, applyDemangledName, createClassStructure, createNamespace, ensureNameLength, generatePlateComment, getBasedName, getDemangledName, getMemberScope, getNamespace, getSpecialMidfix, getSpecialPrefix, getSpecialSuffix, getStorageClass, getUtilDemangled, getVisibility, isConst, isPointer64, isRestrict, isStatic, isThunk, isUnaligned, isVirtual, isVolatile, pad, setBasedName, setConst, setMemberScope, setName, setNamespace, setOriginalMangled, setPointer64, setRestrict, setSignature, setSpecialMidfix, setSpecialPrefix, setSpecialSuffix, setStatic, setStorageClass, setThunk, setUnaligned, setUtilDemangled, setVirtual, setVisibilty, setVolatile, toString
-
-
-
-
Method Detail
-
setDatatype
public void setDatatype(DemangledDataType datatype)
-
getDataType
public DemangledDataType getDataType()
Returns the data type of this variable.- Returns:
- the data type of this variable
-
getSignature
public java.lang.String getSignature(boolean format)
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
protected boolean isAlreadyDemangled(Program program, Address address)
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 address, DemanglerOptions options, TaskMonitor monitor) throws java.lang.Exception
- Overrides:
applyTo
in classDemangledObject
- Throws:
java.lang.Exception
-
getName
public java.lang.String getName()
Description copied from class:DemangledObject
Returns the demangled name of this object. NOTE: unsupported symbol characters, like whitespace, will be converted to an underscore.- Overrides:
getName
in classDemangledObject
- Returns:
- name of this DemangledObject with unsupported characters converted to underscore
-
-