Ghidra Decompiler Analysis Engine
Classes
jumptable.hh File Reference

Classes to support jump-tables and their recovery. More...

#include "emulateutil.hh"
#include "rangeutil.hh"
Include dependency graph for jumptable.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  JumptableThunkError
 Exception thrown for a thunk mechanism that looks like a jump-table. More...
 
struct  JumptableNotReachableError
 Exception thrown is there are no legal flows to a switch. More...
 
class  LoadTable
 A description where and how data was loaded from memory. More...
 
class  PathMeld
 All paths from a (putative) switch variable to the CPUI_BRANCHIND. More...
 
class  EmulateFunction
 A light-weight emulator to calculate switch targets from switch variables. More...
 
class  GuardRecord
 A (putative) switch variable Varnode and a constraint imposed by a CBRANCH. More...
 
class  JumpValues
 An iterator over values a switch variable can take. More...
 
class  JumpValuesRange
 single entry switch variable that can take a range of values More...
 
class  JumpValuesRangeDefault
 A jump-table starting range with two possible execution paths. More...
 
class  JumpModel
 A jump-table execution model. More...
 
class  JumpModelTrivial
 A trivial jump-table model, where the BRANCHIND input Varnode is the switch variable. More...
 
class  JumpBasic
 The basic switch model. More...
 
class  JumpBasic2
 A basic jump-table model with an added default address path. More...
 
class  JumpBasicOverride
 A basic jump-table model incorporating manual override information. More...
 
class  JumpAssisted
 A jump-table model assisted by pseudo-op directives in the code. More...
 
class  JumpTable
 A map from values to control-flow targets within a function. More...
 

Detailed Description

Classes to support jump-tables and their recovery.