about summary refs log tree commit diff stats
path: root/snapshot.py
diff options
context:
space:
mode:
Diffstat (limited to 'snapshot.py')
-rw-r--r--snapshot.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/snapshot.py b/snapshot.py
index 01c6446..3170649 100644
--- a/snapshot.py
+++ b/snapshot.py
@@ -38,3 +38,12 @@ class ProgramState:
 
     def __repr__(self):
         return repr(self.regs)
+
+class SnapshotSymbolResolver(SymbolResolver):
+    def __init__(self, snapshot: ProgramState):
+        self._state = snapshot
+
+    def resolve(self, symbol: str):
+        if symbol not in self._state.arch.regnames:
+            raise SymbolResolveError(symbol, 'Symbol is not a register name.')
+        return self._state.read(symbol)