Closed Pascal-Joos closed 10 months ago
Assignments with a variable annotation (like x: str = y) are not instrumented with write nor read hooks.
x: str = y
For example:
def test_function(): y = "Test" x: str = y return x test_function()
# DYNAPYT: DO NOT INSTRUMENT import dynapyt.runtime as _rt _dynapyt_ast_ = "/home/pascal/Projekt/dynamicslicing/tests/milestone2/test_14/program.py" + ".orig" try: def test_function(): _rt._func_entry_(_dynapyt_ast_, 0, [], "test_function") y = _rt._write_(_dynapyt_ast_, 2, _rt._str_(_dynapyt_ast_, 1, "Test"), [lambda: y]) x: str = y return _rt._read_(_dynapyt_ast_, 3, lambda: x) _rt._func_exit_(_dynapyt_ast_, 0, "test_function") _rt._call_(_dynapyt_ast_, 5, _rt._read_(_dynapyt_ast_, 4, lambda: test_function), False, [], {}) except Exception as _dynapyt_exception_: _rt._catch_(_dynapyt_exception_)
# DYNAPYT: DO NOT INSTRUMENT import dynapyt.runtime as _rt _dynapyt_ast_ = "/home/pascal/Projekt/dynamicslicing/tests/milestone2/test_14/program.py" + ".orig" try: def test_function(): _rt._func_entry_(_dynapyt_ast_, 0, [], "test_function") y = _rt._write_(_dynapyt_ast_, 2, _rt._str_(_dynapyt_ast_, 1, "Test"), [lambda: y]) x: str = _rt._write_(_dynapyt_ast_, 4, _rt._read_(_dynapyt_ast_, 3, lambda: y), [lambda: x]) return _rt._read_(_dynapyt_ast_, 5, lambda: x) _rt._func_exit_(_dynapyt_ast_, 0, "test_function") _rt._call_(_dynapyt_ast_, 7, _rt._read_(_dynapyt_ast_, 6, lambda: test_function), False, [], {}) except Exception as _dynapyt_exception_: _rt._catch_(_dynapyt_exception_)
Thanks a lot! Good catch. I will try to fix it soon.
This should be fixed with the latest commit. Feel free to reopen if the issue persists.
Assignments with a variable annotation (like
x: str = y
) are not instrumented with write nor read hooks.For example:
Input program:
Instrumented Code using dynapyt.analyses.TraceAll.TraceAll:
Expected Instrumentation: