decompiler  1.0.0
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cghidra::ActionLarge scale transformations applied to the varnode/op graph
 Cghidra::ActionDatabaseDatabase of root Action objects that can be used to transform a function
 Cghidra::ActionGroupListThe list of groups defining a root Action
 Cghidra::AliasChecker::AddBaseA helper class holding a Varnode pointer reference and a possible index added to it
 Cghidra::AdditiveEdgeClass representing a term in an additive expression
 Cghidra::AddressA low-level machine address for labelling bytes and data
 Cghidra::AddressResolverAbstract class for converting native constants to addresses
 Cghidra::rangemap< _recordtype >::AddrRangeThe internal sub-range object for the interval map
 Cghidra::AddrSpaceA region where processor data is stored
 Cghidra::AddrSpaceManagerA manager for different address spaces
 Cghidra::AddTreeStateStructure for sorting out pointer expression trees
 Cghidra::AliasCheckerA light-weight class for analyzing pointers and aliasing on the stack
 Cghidra::AncestorRealisticHelper class for determining if Varnodes can trace their value from a legitimate source
 Cghidra::ArchOptionBase class for options classes that affect the configuration of the Architecture object
 Cghidra::AssemblyEmitAbstract class for emitting disassembly to an application
 Cghidra::PrintLanguage::AtomA single non-operator token emitted by the decompiler
 Cghidra::AttributeIdAn annotation for a data element to being transferred to/from a stream
 Cghidra::AttributesThe attributes for a single XML element
 Cghidra::TraceDAG::BadEdgeScoreRecord for scoring a BlockTrace for suitability as an unstructured branch
 Cghidra::BlockEdgeA control-flow edge between blocks (FlowBlock)
 Cghidra::BlockMapHelper class for resolving cross-references while deserializing BlockGraph objects
 Cghidra::TraceDAG::BlockTraceA trace of a single path out of a BranchPoint
 Cghidra::BlockVarnodeHelper class associating a Varnode with the block where it is defined
 Cghidra::RuleConditionalMove::BoolExpressClass for categorizing and rebuilding a boolean expression
 Cghidra::TraceDAG::BranchPoint
 Cghidra::BreakCallBackA breakpoint object
 Cghidra::BreakTableA collection of breakpoints for the emulator
 Cghidra::PackedDecode::ByteChunkA bounded array of bytes
 Cghidra::CapabilityPointClass for automatically registering extension points to the decompiler
 Cghidra::BlockSwitch::CaseOrderA class for annotating and sorting the individual cases of the switch
 Cghidra::CastStrategyA strategy for applying type casts
 Cghidra::ConstantPoolInternal::CheapSorterA cheap (efficient) placeholder for a reference to a constant pool record
 Cghidra::CircleRangeA class for manipulating integer value ranges
 Cghidra::circularqueue< _type >A circular buffer template
 Cghidra::circularqueue< ghidra::TokenSplit >
 Cghidra::circularqueue< int4 >
 Cghidra::CollapseStructureBuild a code structure from a control-flow graph (BlockGraph)
 Cghidra::CommentA comment attached to a specific function and code address
 Cghidra::CommentDatabaseAn interface to a container of comments
 Cghidra::CommentOrderCompare two Comment pointers
 Cghidra::CommentSorterA class for sorting comments into and within basic blocks
 Cghidra::CompilerTagContents of a <compiler> tag in a .ldefs file
 Cghidra::SplitDatatype::ComponentA helper class describing a pair of matching data-types for the split
 Cghidra::ConditionalExecutionA class for simplifying a series of conditionally executed statements
 Cghidra::ConditionalJoinDiscover and eliminate split conditions
 Cghidra::ConditionMarkerA helper class for describing the similarity of the boolean condition between 2 CBRANCH operations
 Cghidra::ConsistencyCheckerDerive Varnode sizes and optimize p-code in SLEIGH Constructors
 Cghidra::ConstantPoolAn interface to the pool of constant objects for byte-code languages
 Cghidra::ContentHandlerThe SAX interface for parsing XML documents
 Cghidra::ContextBitRangeDescription of a context variable within the disassembly context blob
 Cghidra::ContextCacheA helper class for caching the active context blob to minimize database lookups
 Cghidra::ContextDatabaseAn interface to a database of disassembly/decompiler context information
 Cghidra::CoverA description of the topological scope of a single variable object
 Cghidra::CoverBlockThe topological scope of a variable within a basic block
 Cghidra::CPoolRecordA description of a byte-code object referenced by a constant
 Cghidra::DatabaseA manager for symbol scopes for a whole executable
 Cghidra::DatatypeThe base datatype class for the decompiler
 Cghidra::DatatypeCompareCompare two Datatype pointers for equivalence of their description
 Cghidra::DatatypeNameCompareCompare two Datatype pointers: first by name, then by id
 Cghidra::DecoderA class for reading structured data from a stream
 Cghidra::DecoderErrorAn exception thrown by the XML parser
 Cghidra::ActionMarkImplied::DescTreeElementThis class holds a single entry in a stack used to forward traverse Varnode expressions
 Cghidra::DisassemblyCacheA container for disassembly context used by the SLEIGH engine
 Cghidra::DocumentStorageA container for parsed XML documents
 Cghidra::DynamicHashA hash utility to uniquely identify a temporary Varnode in data-flow
 Cghidra::DynamicRecommendA name recommendation for a particular dynamic storage location
 Cghidra::EffectRecordDescription of the indirect effect a sub-function has on a memory range
 Cghidra::ElementAn XML element. A node in the DOM tree
 Cghidra::ElementIdAn annotation for a specific collection of hierarchical data
 Cghidra::EmitInterface for emitting the Decompiler's formal output: source code
 Cghidra::EmulateA pcode-based emulator interface
 Cghidra::EncoderA class for writing structured data to a stream
 Cghidra::SymbolEntry::EntryInitDataInitialization data for a SymbolEntry to facilitate a rangemap
 Cghidra::SymbolEntry::EntrySubsortClass for sub-sorting different SymbolEntry objects at the same address
 Cghidra::ValueSet::EquationAn external that can be applied to a ValueSet
 Cghidra::FieldContextHelper function holding properties of a context field prior to calculating the context layout
 Cghidra::FieldQualityQualities associated (via parsing) with a token or context field
 Cghidra::FloatFormatEncoding information for a single floating-point format
 Cghidra::FloatingEdgeClass for holding an edge while the underlying graph is being manipulated
 Cghidra::FlowBlockDescription of a control-flow block containing PcodeOps
 Cghidra::FlowInfoA class for generating the control-flow structure for a single function
 Cghidra::ContextInternal::FreeArrayA context blob, holding context values across some range of code addresses
 Cghidra::FuncdataContainer for data structures associated with a single function
 Cghidra::FuncProtoA function prototype
 Cghidra::FunctionTestCollectionA collection of tests around a single program/function
 Cghidra::FunctionTestPropertyA single property to be searched for in the output of a function decompilation
 Cghidra::GhidraCommandBase class for a command to the decompiler as issued by a Ghidra client
 Cghidra::GuardRecordA (putative) switch variable Varnode and a constraint imposed by a CBRANCH
 Cghidra::HeritageManage the construction of Static Single Assignment (SSA) form
 Cghidra::HeritageInfoInformation about heritage passes performed for a specific address space
 Cghidra::HighEdgeA record for caching a Cover intersection test between two HighVariable objects
 Cghidra::HighIntersectTestA cache of Cover intersection tests for HighVariables
 Cghidra::HighVariableA high-level variable modeled as a list of low-level variables, each written once
 Cghidra::IfaceCommandA command that can be executed from the command line
 Cghidra::IfaceDataData specialized for a particular command module
 Cghidra::IfaceErrorAn exception specific to the command line interface
 Cghidra::IfaceStatusA generic console mode interface and command executor
 Cghidra::JumpTable::IndexPairAn address table index and its corresponding out-edge
 Cghidra::ParamEntryRange::InitDataHelper class for initializing ParamEntryRange in a range map
 Cghidra::InjectContextContext needed to emit a p-code injection as a full set of p-code operations
 Cghidra::InjectParameterAn input or output parameter to a p-code injection payload
 Cghidra::InjectPayloadAn active container for a set of p-code operations that can be injected into data-flow
 Cghidra::JoinRecordA record describing how logical values are split
 Cghidra::JoinRecordCompareComparator for JoinRecord objects
 Cghidra::JumpModelA jump-table execution model
 Cghidra::JumpTableA map from values to control-flow targets within a function
 Cghidra::JumpValuesAn iterator over values a switch variable can take
 Cghidra::LaneDescriptionDescription of logical lanes within a big Varnode
 Cghidra::LanedRegister::LanedIteratorClass for iterating over possible lane sizes
 Cghidra::LanedRegisterDescribes a (register) storage location and the ways it might be split into lanes
 Cghidra::LanguageDescriptionContents of the <language> tag in a .ldefs file
 Cghidra::LoadGuardDescription of a LOAD operation that needs to be guarded
 Cghidra::LoadImageAn interface into a particular binary executable image
 Cghidra::LoadImageFuncA record indicating a function symbol
 Cghidra::LoadImageSectionA record describing a section bytes in the executable
 Cghidra::LoadTableA description where and how data was loaded from memory
 Cghidra::LocationMapMap object for keeping track of which address ranges have been heritaged
 Cghidra::LoopBodyA description of the body of a loop
 Cghidra::LowlevelErrorThe lowest level error generated by the decompiler
 Cghidra::MapIteratorAn iterator over SymbolEntry objects in multiple address spaces
 Cghidra::MapStateA container for hints about the data-type layout of an address space
 Cghidra::MemoryBankMemory storage/state for a single AddressSpace
 Cghidra::MemoryStateAll storage/state for a pcode machine
 Cghidra::MergeClass for merging low-level Varnodes into high-level HighVariables
 Cghidra::ConditionalJoin::MergePairA pair of Varnode objects that have been split (and should be merged)
 Cghidra::RuleOrPredicate::MultiPredicateA helper class to mark up predicated INT_OR expressions
 Cghidra::NameRecommendA symbol name recommendation with its associated storage location
 Cghidra::PrintLanguage::NodePendingA pending data-flow node; waiting to be placed on the reverse polish notation stack
 Cghidra::ScopeMapper::NullSubsortHelper class for not doing any sub-sorting of overlapping ScopeMapper ranges
 Cghidra::OpBehaviorClass encapsulating the action/behavior of specific pcode opcodes
 Cghidra::ActionNameVars::OpRecommendThis class is a record in a database used to store and lookup potential names
 Cghidra::ActionMarkExplicit::OpStackElementThis class holds a single entry in a stack used to traverse Varnode expressions
 Cghidra::ConsistencyChecker::OptimizeRecordDescription of how a temporary register is being used within a Constructor
 Cghidra::OptionDatabaseA Dispatcher for possible ArchOption commands
 Cghidra::OpTokenA token representing an operator in the high-level language
 Cghidra::OverrideA container of commands that override the decompiler's default behavior for a single function
 Cghidra::ParamActiveContainer class for ParamTrial objects
 Cghidra::ParamEntryA contiguous range of memory that can be used to pass parameters
 Cghidra::ParamEntryRangeClass for storing ParamEntry objects in an interval range (rangemap)
 Cghidra::ParameterPiecesBasic elements of a parameter: address, data-type, properties
 Cghidra::ParamList
 Cghidra::ParamTrialA register or memory register that may be used to pass a parameter or return value
 Cghidra::PartialSymbolEntryA structure for pushing nested fields to the RPN stack
 Cghidra::rangemap< _recordtype >::PartIteratorAn iterator into the interval map container
 Cghidra::PartitionA range of nodes (within the weak topological ordering) that are iterated together
 Cghidra::partmap< _linetype, _valuetype >A map from a linear space to value objects
 Cghidra::partmap< ghidra::Address, ghidra::ContextInternal::FreeArray >
 Cghidra::partmap< ghidra::Address, TrackedSet >
 Cghidra::partmap< ghidra::Address, uint4 >
 Cghidra::SubvariableFlow::PatchRecordOperation with a new logical value as (part of) input, but output Varnode is unchanged
 Cghidra::PathMeldAll paths from a (putative) switch variable to the CPUI_BRANCHIND
 CPcodeBuilder
 Cghidra::PcodeCacherClass for caching a chunk of p-code, prior to emitting
 CPcodeCompile
 Cghidra::PcodeDataData for building one p-code instruction
 Cghidra::PcodeEmitAbstract class for emitting pcode to an application
 Cghidra::PcodeInjectLibraryA collection of p-code injection payloads
 Cghidra::PcodeOpLowest level operation of the p-code language
 Cghidra::PcodeOpBankContainer class for PcodeOps associated with a single function
 Cghidra::PcodeOpNodeAn edge in a data-flow path or graph
 Cghidra::PcodeOpRawA low-level representation of a single pcode operation
 Cghidra::PendPrintHelper class for sending cancelable print commands to an ExitXml
 Cghidra::ScoreProtoModel::PEntryA record mapping trials to parameter entries in the prototype model
 Cghidra::VariableGroup::PieceCompareByOffsetCompare two VariablePiece pointers by offset then by size
 Cghidra::PieceNodeA node in a tree structure of CPUI_PIECE operations
 Cghidra::PackedDecode::PositionAn iterator into input stream
 Cghidra::PrintLanguageThe base class API for emitting a high-level language
 Cghidra::PriorityQueuePriority queue for the phi-node (MULTIEQUAL) placement algorithm
 Cghidra::PropagationStateA class that holds a data-type traversal state during type propagation
 Cghidra::ProtoModelA prototype model: a model for passing parameters between functions
 Cghidra::ProtoParameterA function parameter viewed as a name, data-type, and storage address
 Cghidra::ProtoStoreA collection parameter descriptions making up a function prototype
 Cghidra::PrototypePiecesRaw components of a function prototype (obtained from parsing source code)
 Cghidra::RangeA contiguous range of bytes in some address space
 Cghidra::RangeHintPartial data-type information mapped to a specific range of bytes
 Cghidra::RangeListA disjoint set of Ranges, possibly across multiple address spaces
 Cghidra::rangemap< _recordtype >An interval map container
 Cghidra::rangemap< ScopeMapper >
 Cghidra::RangePropertiesA partially parsed description of a Range
 Cghidra::RelativeRecordClass for describing a relative p-code branch destination
 Cghidra::SubvariableFlow::ReplaceOpPlaceholder node for PcodeOp operating on smaller logical values
 Cghidra::SubvariableFlow::ReplaceVarnodePlaceholder node for Varnode holding a smaller logical value
 Cghidra::ResolvedUnionA data-type resolved from an associated TypeUnion or TypeStruct
 Cghidra::ResolveEdgeA data-flow edge to which a resolved data-type can be assigned
 Cghidra::PrintLanguage::ReversePolishAn entry on the reverse polish notation (RPN) stack
 Cghidra::PathMeld::RootedOpA PcodeOp in the path set associated with the last Varnode in the intersection
 Cghidra::SplitDatatype::RootPointerA helper class describing the pointer being passed to a LOAD or STORE
 Cghidra::RtlPairA helper class to associate a named Constructor section with its symbol scope
 Cghidra::RuleClass for performing a single transformation on a PcodeOp or Varnode
 Cghidra::ScopeA collection of Symbol objects within a single (namespace or functional) scope
 Cghidra::ScopeMapperAn Address range associated with the symbol Scope that owns it
 Cghidra::ScoreProtoModelClass for calculating "goodness of fit" of parameter trials against a prototype model
 Cghidra::ScoreUnionFieldsAnalyze data-flow to resolve which field of a union data-type is being accessed
 Cghidra::SectionVectorA collection of named p-code sections for a single Constructor
 Cghidra::SeqNumA class for uniquely labelling and comparing PcodeOps
 Cghidra::SizePassLabel for describing extent of address range that has been heritaged
 Cghidra::SourceFileIndexerClass for recording source file information for SLEIGH constructors
 Cghidra::SpaceQualityQualities associated (via parsing) with an address space
 Cghidra::SplitDatatypeSplit a p-code COPY, LOAD, or STORE op based on underlying composite data-type
 Cghidra::StackEqnA stack equation
 Cghidra::Heritage::StackNodeNode for depth-first traversal of stack references
 Cghidra::StackSolverA class that solves for stack-pointer changes across unknown sub-functions
 Cghidra::AncestorRealistic::StateNode in a depth first traversal of ancestors
 Cghidra::StringManager::StringDataString data (a sequence of bytes) stored by StringManager
 Cghidra::StringManagerStorage for decoding and storing strings associated with an address
 Cghidra::CommentSorter::SubsortThe sorting key for placing a Comment within a specific basic block
 Cghidra::ParamEntryRange::SubsortPositionHelper class for subsorting on position
 Cghidra::SubvariableFlowClass for shrinking big Varnodes carrying smaller logical values
 Cghidra::SymbolThe base class for a symbol in a symbol table or scope
 Cghidra::SymbolCompareNameComparator for sorting Symbol objects by name
 Cghidra::SymbolEntryA storage location for a particular Symbol
 Cghidra::TermOrderA class for ordering Varnode terms in an additive expression
 Cghidra::TokenSplitA token/command object in the pretty printing stream
 Cghidra::ToOpEdgeAn edge between a Varnode and a PcodeOp
 Cghidra::TraceDAGAlgorithm for selecting unstructured edges based an Directed Acyclic Graphs (DAG)
 Cghidra::TrackedContextA tracked register (Varnode) and the value it contains
 Cghidra::TransformManagerClass for splitting larger registers holding smaller logical lanes
 Cghidra::TransformOpPlaceholder node for PcodeOp that will exist after a transform is applied to a function
 Cghidra::TransformVarPlaceholder node for Varnode that will exist after a transform is applied to a function
 Cghidra::TraverseNodeNode for a forward traversal of a Varnode expression
 Cghidra::ScoreUnionFields::TrialA trial data-type fitted to a specific place in the data-flow
 Cghidra::TruncationTagObject for describing how a space should be truncated
 Cghidra::TypeFactoryContainer class for all Datatype objects in an Architecture
 Cghidra::TypeFieldA field within a structure or union
 Cghidra::TypeOpAssociate data-type and behavior information with a specific p-code op-code
 Cghidra::TypeRecommendData-type for a storage location when there is no Symbol (yet)
 Cghidra::UnitTestSimple unit test class
 Cghidra::UserOpManageManager/container for description objects (UserPcodeOp) of user defined p-code ops
 Cghidra::UserPcodeOpThe base class for a detailed definition of a user-defined p-code operation
 Cghidra::ValueSetA range of values attached to a Varnode within a data-flow subsystem
 Cghidra::ValueSetSolver::ValueSetEdgeAn iterator over out-bound edges for a single ValueSet node in a data-flow system
 Cghidra::ValueSetReadA special form of ValueSet associated with the read point of a Varnode
 Cghidra::ValueSetSolverClass that determines a ValueSet for each Varnode in a data-flow system
 Cghidra::VariableGroupForward declaration
 Cghidra::VariablePieceInformation about how a HighVariable fits into a larger group or Symbol
 Cghidra::VarnodeA low-level variable or contiguous set of bytes described by an Address and a size
 Cghidra::VarnodeBankA container for Varnode objects from a specific function
 Cghidra::VarnodeCompareDefLocCompare two Varnode pointers by definition then location
 Cghidra::VarnodeCompareLocDefCompare two Varnode pointers by location then definition
 Cghidra::VarnodeDataData defining a specific memory location
 Cghidra::ScoreUnionFields::VisitMarkA mark accumulated when a given Varnode is visited with a specific field index
 Cghidra::FlowInfo::VisitStatA helper function describing the number of bytes in a machine instruction and the starting p-code op
 Cghidra::WidenerClass holding a particular widening strategy for the ValueSetSolver iteration algorithm
 Cghidra::WithBlockSubtable, pattern, and context information applied across a with block
 Cghidra::LaneDivide::WorkNodeDescription of a large Varnode that needs to be traced (in the worklist)