decompiler  1.0.0
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 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
 Crangemap< _recordtype >::AddrRangeThe internal sub-range object for the interval map
 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
 CTraceDAG::BadEdgeScoreRecord for scoring a BlockTrace for suitability as an unstructured branch
 CBlockEdgeA control-flow edge between blocks (FlowBlock)
 CBlockMapHelper class for resolving cross-references while deserializing BlockGraph objects
 CTraceDAG::BlockTraceA trace of a single path out of a BranchPoint
 CBlockVarnodeHelper class associating a Varnode with the block where it is defined
 CRuleConditionalMove::BoolExpressClass for categorizing and rebuilding a boolean expression
 CTraceDAG::BranchPoint
 CBreakCallBackA breakpoint object
 CBreakTableA collection of breakpoints for the emulator
 CCapabilityPointClass for automatically registering extension points to the decompiler
 CBlockSwitch::CaseOrderA class for annotating and sorting the individual cases of the switch
 CCastStrategyA strategy for applying type casts
 CConstantPoolInternal::CheapSorterA cheap (efficient) placeholder for a reference to a constant pool record
 CCircleRangeA class for manipulating integer value ranges
 Ccircularqueue< _type >A circular buffer template
 Ccircularqueue< int4 >
 Ccircularqueue< TokenSplit >
 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
 CConstantPoolAn interface to the pool of constant objects for byte-code languages
 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
 CContextDatabaseAn interface to a database of disassembly/decompiler context information
 CCoverA description of the topological scope of a single variable object
 CCoverBlockThe topological scope of a variable within a basic block
 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
 CActionMarkImplied::DescTreeElementThis class holds a single entry in a stack used to forward traverse Varnode expressions
 CDisassemblyCache
 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
 CEqual1Form
 CEqual2Form
 CEqual3Form
 CValueSet::EquationAn external that can be applied to a ValueSet
 CFileStreamState
 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
 CContextInternal::FreeArrayA context blob, holding context values across some range of code addresses
 CFuncdataContainer for data structures associated with a single function
 CFuncProtoA function prototype
 CGhidraCommandBase class for a command to the decompiler as issued by a Ghidra client
 CGuardRecordA (putative) switch variable Varnode and a constraint imposed by a CBRANCH
 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
 CJumpTable::IndexPairAn address table index and its corresponding out-edge
 CIndirectForm
 CParamEntryRange::InitDataHelper class for initializing ParamEntryRange in a range map
 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
 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
 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
 CConditionalJoin::MergePairA pair of Varnode objects that have been split (and should be merged)
 CMultForm
 CRuleOrPredicate::MultiPredicateA helper class to mark up predicated INT_OR expressions
 CNameRecommendA symbol name recommendation with its associated storage location
 CPrintLanguage::NodePendingA pending data-flow node; waiting to be placed on the reverse polish notation stack
 CScopeMapper::NullSubsortHelper class for not doing any sub-sorting of overlapping ScopeMapper ranges
 COpBehaviorClass encapsulating the action/behavior of specific pcode opcodes
 COpFollowA simple node used to dynamically define a sequence of operations
 CActionNameVars::OpRecommendThis class is a record in a database used to store and lookup potential names
 CActionMarkExplicit::OpStackElementThis class holds a single entry in a stack used to traverse Varnode expressions
 COptionDatabaseA Dispatcher for possible ArchOption commands
 COpTokenA token representing an operator in the high-level language
 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
 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, ContextInternal::FreeArray >
 Cpartmap< Address, TrackedSet >
 Cpartmap< Address, uint4 >
 CSubvariableFlow::PatchRecordOperation with a new logical value as (part of) input, but output Varnode is unchanged
 CPathMeldAll paths from a (putative) switch variable to the CPUI_BRANCHIND
 CPcodeBuilder
 CPcodeCacher
 CPcodeData
 CPcodeEmitAbstract class for emitting pcode to an application
 CPcodeInjectLibraryA collection of p-code injection payloads
 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
 CPcodeOpRawA low-level representation of a single pcode operation
 CScoreProtoModel::PEntryA record mapping trials to parameter entries in the prototype model
 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 >
 CRelativeRecord
 CSubvariableFlow::ReplaceOpPlaceholder node for PcodeOp operating on smaller logical values
 CSubvariableFlow::ReplaceVarnodePlaceholder node for Varnode holding a smaller logical value
 CPrintLanguage::ReversePolishAn entry on the reverse polish notation (RPN) stack
 CPathMeld::RootedOpA PcodeOp in the path set associated with the last Varnode in the intersection
 CRuleClass for performing a single transformation on a PcodeOp or Varnode
 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
 CSeqNumA class for uniquely labelling and comparing PcodeOps
 CShiftForm
 CSizePassLabel for describing extent of address range that has been heritaged
 CPreferSplitManager::SplitInstance
 CSplitVarnode
 CStackEqnA stack equation
 CHeritage::StackNodeNode for depth-first traversal of stack references
 CStackSolverA class that solves for stack-pointer changes across unknown sub-functions
 CAncestorRealistic::StateNode in a depth first traversal of ancestors
 CStringManager::StringData
 CStringManagerStorage for decoding and storing strings associated with an address
 CSubForm
 CCommentSorter::SubsortThe sorting key for placing a Comment within a specific basic block
 CParamEntryRange::SubsortPositionHelper class for subsorting on position
 CSubvariableFlowClass for shrinking big Varnodes carrying smaller logical values
 CSymbolThe base class for a symbol in a symbol table or scope
 CSymbolCompareNameComparator for sorting Symbol objects by name
 CSymbolEntryA storage location for a particular Symbol
 CTermOrderA class for ordering Varnode terms in an additive expression
 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
 CTruncationTagObject for describing how a space should be truncated
 CTypeFactoryContainer class for all Datatype objects in an Architecture
 CTypeFieldSpecifies subfields of a structure or what a pointer points to
 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)
 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
 CValueSetSolver::ValueSetEdgeAn iterator over out-bound edges for a single ValueSet node in a data-flow system
 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
 CFlowInfo::VisitStatA helper function describing the number of bytes in a machine instruction and the starting p-code op
 CParamMeasure::WalkState
 CWidenerClass holding a particular widening strategy for the ValueSetSolver iteration algorithm
 CLaneDivide::WorkNodeDescription of a large Varnode that needs to be traced (in the worklist)
 CXmlErrorAn exception thrown by the XML parser
 Cyy_buffer_state
 Cyy_trans_info
 Cyyalloc
 CYYSTYPE