Ghidra Decompiler Analysis Engine
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 CActionLarge scale transformations applied to the varnode/op graph
 CActionDatabaseDatabase of root Action objects that can be used to transform a function
 CActionGroupListThe list of groups defining a root Action
 CAliasChecker::AddBaseA helper class holding a Varnode pointer reference and a possible index added to it
 CAddForm
 CAddressA low-level machine address for labelling bytes and data
 CAddressResolverAbstract class for converting native constants to addresses
 CAddrLink
 CAddrSpaceA region where processor data is stored
 CAddrSpaceManagerA manager for different address spaces
 CAddTreeStateStructure for sorting out pointer expression trees
 CAliasCheckerA light-weight class for analyzing pointers and aliasing on the stack
 CAncestorRealisticHelper class for determining if Varnodes can trace their value from a legitimate source
 CArchOptionBase class for options classes that affect the configuration of the Architecture object
 CAssemblyEmitAbstract class for emitting disassembly to an application
 CPrintLanguage::AtomA single non-operator token emitted by the decompiler
 CAttributesThe attributes for a single XML element
 CBlockEdgeA control-flow edge between blocks (FlowBlock)
 CBlockMapHelper class for resolving cross-references while deserializing BlockGraph objects
 CBlockVarnodeHelper class associating a Varnode with the block where it is defined
 CBreakCallBackA breakpoint object
 CBreakTableA collection of breakpoints for the emulator
 CCallGraph
 CCallGraphEdge
 CCallGraphNode
 CCapabilityPointClass for automatically registering extension points to the decompiler
 CCastStrategyA strategy for applying type casts
 CCircleRangeA class for manipulating integer value ranges
 Ccircularqueue< _type >A circular buffer template
 Ccircularqueue< int4 >
 Ccircularqueue< TokenSplit >
 CCodeUnit
 CCollapseStructureBuild a code structure from a control-flow graph (BlockGraph)
 CCommentA comment attached to a specific function and code address
 CCommentDatabaseAn interface to a container of comments
 CCommentOrderCompare two Comment pointers
 CCommentSorterA class for sorting comments into and within basic blocks
 CCompilerTagContents of a <compiler> tag in a .ldefs file
 CConditionalExecutionA class for simplifying a series of conditionally executed statements
 CConditionalJoinDiscover and eliminate split conditions
 CConditionMarkerA helper class for describing the similarity of the boolean condition between 2 CBRANCH operations
 CConsistencyChecker
 CConstantPoolAn interface to the pool of constant objects for byte-code languages
 CConstructor
 CConstructState
 CConstructTpl
 CConstTpl
 CContentHandlerThe SAX interface for parsing XML documents
 CContextBitRangeDescription of a context variable within the disassembly context blob
 CContextCacheA helper class for caching the active context blob to minimize database lookups
 CContextChange
 CContextDatabaseAn interface to a database of disassembly/decompiler context information
 CContextSet
 CCoverA description of the topological scope of a single variable object
 CCoverBlockThe topological scope of a variable within a basic block
 CCParse
 CCPoolRecordA description of a byte-code object referenced by a constant
 CDatabaseA manager for symbol scopes for a whole executable
 CDatatypeThe base datatype class for the decompiler
 CDatatypeCompareCompare two Datatype pointers for equivalence of their description
 CDatatypeNameCompareCompare two Datatype pointers: first by name, then by id
 CDecisionNode
 CDecisionProperties
 CDisassemblyCacheA container for disassembly context used by the SLEIGH engine
 CDisassemblyResult
 CDocumentStorageA container for parsed XML documents
 CDynamicHashA hash utility to uniquely identify a temporary Varnode in data-flow
 CDynamicRecommendA name recommendation for a particular dynamic storage location
 CEffectRecordDescription of the indirect effect a sub-function has on a memory range
 CElementAn XML element. A node in the DOM tree
 CEmitXmlBase class (and interface) for pretty printing and XML markup of tokens
 CEmulateA pcode-based emulator interface
 CSymbolEntry::EntryInitDataInitialization data for a SymbolEntry to facilitate a rangemap
 CSymbolEntry::EntrySubsortClass for sub-sorting different SymbolEntry objects at the same address
 CEnumerator
 CEqual1Form
 CEqual2Form
 CEqual3Form
 CValueSet::EquationAn external that can be applied to a ValueSet
 CExprTree
 CFieldContext
 CFieldQuality
 CFileManage
 CFileStreamState
 CFixedHandle
 CFloatFormatEncoding information for a single floating-point format
 CFloatingEdgeClass for holding an edge while the underlying graph is being manipulated
 CFlowBlockDescription of a control-flow block containing PcodeOps
 CFlowInfoA class for generating the control-flow structure for a single function
 CFuncdataContainer for data structures associated with a single function
 CFuncProtoA function prototype
 CFunctionTestCollectionA collection of tests around a single program/function
 CFunctionTestPropertyA single property to be searched for in the output of a function decompilation
 CGhidraCommandBase class for a command to the decompiler as issued by a Ghidra client
 CGrammarLexer
 CGrammarToken
 CGuardRecordA (putative) switch variable Varnode and a constraint imposed by a CBRANCH
 CHandleTpl
 CHeritageManage the construction of Static Single Assignment (SSA) form
 CHeritageInfoInformation about heritage passes performed for a specific address space
 CHighEdgeA record for caching a Cover intersection test between two HighVariable objects
 CHighVariableA high-level variable modeled as a list of low-level variables, each written once
 CIdentRec
 CIfaceCommandA command that can be executed from the command line
 CIfaceDataData specialized for a particular command module
 CIfaceErrorAn exception specific to the command line interface
 CIfaceStatusA generic console mode interface and command executor
 CImportRecord
 CIndirectForm
 CInjectContextContext needed to emit a p-code injection as a full set of p-code operations
 CInjectParameterAn input or output parameter to a p-code injection payload
 CInjectPayloadAn active container for a set of p-code operations that can be injected into data-flow
 CJoinRecordA record describing how logical values are split
 CJoinRecordCompareComparator for JoinRecord objects
 CJumpModelA jump-table execution model
 CJumpTableA map from values to control-flow targets within a function
 CJumpValuesAn iterator over values a switch variable can take
 CLaneDescriptionDescription of logical lanes within a big Varnode
 CLanedRegister::LanedIteratorClass for iterating over possible lane sizes
 CLanedRegisterDescribes a (register) storage location and the ways it might be split into lanes
 CLanguageDescriptionContents of the <language> tag in a .ldefs file
 CLeafIterator
 CLessConstForm
 CLessThreeWay
 CLoadGuardDescription of a LOAD operation that needs to be guarded
 CLoadImageAn interface into a particular binary executable image
 CLoadImageFuncA record indicating a function symbol
 CLoadImageSectionA record describing a section bytes in the executable
 CLoadTableA description where and how data was loaded from memory
 CLocation
 CLocationMapMap object for keeping track of which address ranges have been heritaged
 CLogicalForm
 CLoopBodyA description of the body of a loop
 CLowlevelErrorThe lowest level error generated by the decompiler
 CMapIteratorAn iterator over SymbolEntry objects in multiple address spaces
 CMapStateA container for hints about the data-type layout of an address space
 CMemoryBankMemory storage/state for a single AddressSpace
 CMemoryStateAll storage/state for a pcode machine
 CMergeClass for merging low-level Varnodes into high-level HighVariables
 CMultForm
 CNameRecommendA symbol name recommendation with its associated storage location
 CNameValueA parsed name/value pair
 CPrintLanguage::NodePendingA pending data-flow node; waiting to be placed on the reverse polish notation stack
 COpBehaviorClass encapsulating the action/behavior of specific pcode opcodes
 COperandResolve
 COpFollowA simple node used to dynamically define a sequence of operations
 COptionDatabaseA Dispatcher for possible ArchOption commands
 COpTokenA token representing an operator in the high-level language
 COpTpl
 COverrideA container of commands that override the decompiler's default behavior for a single function
 CParamActiveContainer class for ParamTrial objects
 CParamEntryA contiguous range of memory that can be used to pass parameters
 CParamEntryRangeClass for storing ParamEntry objects in an interval range (rangemap)
 CParameterPiecesBasic elements of a parameter: address, data-type, properties
 CParamIDAnalysis
 CParamList
 CParamMeasure
 CParamTrialA register or memory register that may be used to pass a parameter or return value
 CParserContext
 CParserWalker
 CPartialSymbolEntryA structure for pushing nested fields to the RPN stack
 Crangemap< _recordtype >::PartIteratorAn iterator into the interval map container
 CPartitionA range of nodes (within the weak topological ordering) that are iterated together
 Cpartmap< _linetype, _valuetype >A map from a linear space to value objects
 Cpartmap< Address, FreeArray >
 Cpartmap< Address, TrackedSet >
 Cpartmap< Address, uint4 >
 CPathMeldAll paths from a (putative) switch variable to the CPUI_BRANCHIND
 CPattern
 CPatternBlock
 CPatternEquation
 CPatternExpression
 CPcodeBuilder
 CPcodeCacherClass for caching a chunk of p-code, prior to emitting
 CPcodeCompile
 CPcodeDataData for building one p-code instruction
 CPcodeEmitAbstract class for emitting pcode to an application
 CPcodeInjectLibraryA collection of p-code injection payloads
 CPcodeLexer
 CPcodeOpLowest level operation of the p-code language
 CPcodeOpBankContainer class for PcodeOps associated with a single function
 CPcodeOpEdgeClass representing a term in an additive expression
 CPcodeOpNodeAn edge in a data-flow path or graph
 CPcodeOpRawA low-level representation of a single pcode operation
 CPhiForm
 CPreferSplitManager
 CPreferSplitRecord
 CPrintLanguageThe base class API for emitting a high-level language
 CPriorityQueuePriority queue for the phi-node (MULTIEQUAL) placement algorithm
 CPropagationStateA class that holds a data-type traversal state during type propagation
 CProtoModelA prototype model: a model for passing parameters between functions
 CProtoParameterA function parameter viewed as a name, data-type, and storage address
 CProtoStoreA collection parameter descriptions making up a function prototype
 CPrototypePiecesRaw components of a function prototype (obtained from parsing source code)
 CRangeA contiguous range of bytes in some address space
 CRangeHintPartial data-type information mapped to a specific range of bytes
 CRangeListA disjoint set of Ranges, possibly across multiple address spaces
 Crangemap< _recordtype >An interval map container
 Crangemap< ScopeMapper >
 CRelativeRecordClass for describing a relative p-code branch destination
 CPrintLanguage::ReversePolishAn entry on the reverse polish notation (RPN) stack
 CRHSConstant
 CRtlPair
 CRuleClass for performing a single transformation on a PcodeOp or Varnode
 CRuleCompile
 CRuleLexer
 CScopeA collection of Symbol objects within a single (namespace or functional) scope
 CScopeMapperAn Address range associated with the symbol Scope that owns it
 CScoreProtoModelClass for calculating "goodness of fit" of parameter trials against a prototype model
 CSectionVector
 CSeqNumA class for uniquely labelling and comparing PcodeOps
 CShiftForm
 CSizePassLabel for describing extent of address range that has been heritaged
 CSleighSymbol
 CSourceFileIndexerClass for recording source file information for SLEIGH constructors
 CSpaceQuality
 CSplitVarnode
 CStackEqnA stack equation
 CStackSolverA class that solves for stack-pointer changes across unknown sub-functions
 CStarQuality
 CStringManager::StringDataString data (a sequence of bytes) stored by StringManager
 CStringManagerStorage for decoding and storing strings associated with an address
 CSubForm
 CSubvariableFlowClass for shrinking big Varnodes carrying smaller logical values
 CSymbolThe base class for a symbol in a symbol table or scope
 CSymbolCompare
 CSymbolCompareNameComparator for sorting Symbol objects by name
 CSymbolEntryA storage location for a particular Symbol
 CSymbolScope
 CSymbolTable
 CTargetFeature
 CTargetHit
 CTermOrderA class for ordering Varnode terms in an additive expression
 CToken
 CTokenPattern
 CTokenSplitA token/command object in the pretty printing stream
 CToOpEdgeAn edge between a Varnode and a PcodeOp
 CTraceDAGAlgorithm for selecting unstructured edges based an Directed Acyclic Graphs (DAG)
 CTrackedContextA tracked register (Varnode) and the value it contains
 CTransformManagerClass for splitting larger registers holding smaller logical lanes
 CTransformOpPlaceholder node for PcodeOp that will exist after a transform is applied to a function
 CTransformVarPlaceholder node for Varnode that will exist after a transform is applied to a function
 CTraverseConstraint
 CTruncationTagObject for describing how a space should be truncated
 CTypeDeclarator
 CTypeFactoryContainer class for all Datatype objects in an Architecture
 CTypeFieldSpecifies subfields of a structure or what a pointer points to
 CTypeModifier
 CTypeOpAssociate data-type and behavior information with a specific p-code op-code
 CTypeRecommendData-type for a storage location when there is no Symbol (yet)
 CTypeSpecifiers
 CUnifyConstraint
 CUnifyCPrinter
 CUnifyDatatype
 CUnifyState
 CUnitTestSimple unit test class
 CUserOpManageManager/container for description objects (UserPcodeOp) of user defined p-code ops
 CUserPcodeOpThe base class for a detailed definition of a user-defined p-code operation
 CValueSetA range of values attached to a Varnode within a data-flow subsystem
 CValueSetReadA special form of ValueSet associated with the read point of a Varnode
 CValueSetSolverClass that determines a ValueSet for each Varnode in a data-flow system
 CVarnodeA low-level variable or contiguous set of bytes described by an Address and a size
 CVarnodeBankA container for Varnode objects from a specific function
 CVarnodeCompareDefLocCompare two Varnode pointers by definition then location
 CVarnodeCompareLocDefCompare two Varnode pointers by location then definition
 CVarnodeDataData defining a specific memory location
 CVarnodeTpl
 CParamMeasure::WalkState
 CWidenerClass holding a particular widening strategy for the ValueSetSolver iteration algorithm
 CWithBlock
 CXmlErrorAn exception thrown by the XML parser
 CXmlScanThe XML character scanner
 Cyy_buffer_state
 Cyy_trans_info
 Cyyalloc
 CYYSTYPE