about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorReimersS <sebastian.reimers@tum.de>2025-11-29 20:07:52 +0000
committerReimersS <sebastian.reimers@tum.de>2025-11-29 20:22:26 +0000
commit3e1bb565abc3de8967f0edb7f51ae3667a39c65e (patch)
tree6ec0054fc59f8866fa08e543d36c3018f7ca71b9 /src
parentf91ff3e559319c2ec87b582c8d490677a00a6395 (diff)
downloadfocaccia-3e1bb565abc3de8967f0edb7f51ae3667a39c65e.tar.gz
focaccia-3e1bb565abc3de8967f0edb7f51ae3667a39c65e.zip
Start/stop address for benchmarking
Diffstat (limited to 'src')
-rw-r--r--src/focaccia/_deterministic_impl.py2
-rw-r--r--src/focaccia/deterministic.py3
-rwxr-xr-xsrc/focaccia/tools/benchmark_focaccia.py12
3 files changed, 13 insertions, 4 deletions
diff --git a/src/focaccia/_deterministic_impl.py b/src/focaccia/_deterministic_impl.py
index 5e4017d..298a388 100644
--- a/src/focaccia/_deterministic_impl.py
+++ b/src/focaccia/_deterministic_impl.py
@@ -182,7 +182,7 @@ class DeterministicLog:
         self.base_directory = log_dir
 
     def _get_file(self, file_name: str) -> str | None:
-        if self.base_directory = None:
+        if self.base_directory is None:
             return None
         candidate = os.path.join(self.base_directory, file_name)
         if os.path.isfile(candidate):
diff --git a/src/focaccia/deterministic.py b/src/focaccia/deterministic.py
index 343a1ba..d484d5d 100644
--- a/src/focaccia/deterministic.py
+++ b/src/focaccia/deterministic.py
@@ -277,7 +277,8 @@ class DetachTask(Task):
 
 try:
     from ._deterministic_impl import DeterministicLog
-except Exception:
+except Exception as e:
+    print(f'Could not import deterministic log implementation: {e}')
     class DeterministicLog:
         def __init__(self, log_dir: str): 
             self.base_directory = None
diff --git a/src/focaccia/tools/benchmark_focaccia.py b/src/focaccia/tools/benchmark_focaccia.py
index 38e236f..e100bf7 100755
--- a/src/focaccia/tools/benchmark_focaccia.py
+++ b/src/focaccia/tools/benchmark_focaccia.py
@@ -49,6 +49,14 @@ def make_argparser():
     prog.add_argument('-o', '--output',
                       default='./benchmark.txt',
                       help='Output file to save results')
+    prog.add_argument('--start-address',
+                      type=lambda x: int(x,0),
+                      default=None,
+                      help='Start address for tracing')
+    prog.add_argument('--stop-address',
+                      type=lambda x: int(x,0),
+                      default=None,
+                      help='Stop address for tracing')
     return prog
 
 def quoted(s: str) -> str:
@@ -72,8 +80,8 @@ def runtime_benchmark(args):
     for i in range(timer.iterations):
         env = TraceEnvironment(args.binary, args.args, utils.get_envp(),
                                nondeterminism_log=detlog,
-                               start_address=None,
-                               stop_address=None)
+                               start_address=args.start_address,
+                               stop_address=args.stop_address)
         tracer = SymbolicTracer(env, remote=args.remote, cross_validate=False,
                             force=True)
         trace = tracer.trace(time_limit=None)