about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2020-05-19 10:54:26 +0200
committerGitHub <noreply@github.com>2020-05-19 10:54:26 +0200
commit389c26c647dc65187f205834a79f1db03d855146 (patch)
tree11f97932d82bf7e92537464053e9708a6783de87
parentb7fe29fbd90a22c7604db2554f839691efe100dc (diff)
parent9693085d3c8510c3182f1c1a65eecfe60a2dd25c (diff)
downloadmiasm-389c26c647dc65187f205834a79f1db03d855146.tar.gz
miasm-389c26c647dc65187f205834a79f1db03d855146.zip
Merge pull request #1228 from carolineLe/jitter_run_until
Jitter: new feature run_until
-rw-r--r--miasm/jitter/jitload.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/miasm/jitter/jitload.py b/miasm/jitter/jitload.py
index 68f9c40d..34690425 100644
--- a/miasm/jitter/jitload.py
+++ b/miasm/jitter/jitload.py
@@ -422,6 +422,17 @@ class Jitter(object):
         self.init_run(addr)
         return self.continue_run()
 
+    def run_until(self, addr):
+        """PRE: init_run.
+        Continue the run of the current session until iterator returns, run is
+        set to False or addr is reached.
+        Return the iterator value"""
+
+        def stop_exec(jitter):
+            jitter.remove_breakpoints_by_callback(stop_exec)
+            return False
+        self.add_breakpoint(addr, stop_exec)
+        return self.continue_run()
 
     def init_stack(self):
         self.vm.add_memory_page(