angr.knowledge_plugins.variables.spilling_vardict¶
- class angr.knowledge_plugins.variables.spilling_vardict.SpillingVariableInternalDict¶
Bases:
MutableMappingA dict of per-function VariableManagerInternal instances (keyed by function address) that keeps only the most recently used cache_limit entries in memory and spills the rest to an LMDB database managed by the RuntimeDb knowledge base plugin. It is the backing store for
DecompilationVariableManager.function_managers.Evicted entries are serialized and written out; they are deserialized on access with the owning manager reattached. Decompilation only mutates a function’s internal manager while decompiling that function (when it is the most-recently-used entry) and treats it as read-only afterwards, so spilling is safe.
On pickle, the serialized entries travel inside the pickle and are re-imported into a fresh LMDB on first access after unpickling.
- __init__(manager, cache_limit=1000)¶
- Parameters:
manager (DecompilationVariableManager)
cache_limit (int)