angr.knowledge_plugins.variables.spilling_vardict

class angr.knowledge_plugins.variables.spilling_vardict.SpillingVariableInternalDict

Bases: MutableMapping

A 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:
property cache_limit: int