Closed mr-ma closed 6 years ago
@mr-ma This problem most probably is related to issue #41 from Input dependency project. sig_handler0 is an extracted function, however input dependency pass running right after extraction marks it input independent as its call site is input independent. Thus OH is free to insert assertions/hashes in the function. I've committed fix for the mentioned issue. Could you please verify if it fixes this problem too?
As for library configuration, yes, we need library configuration for the snake program. Configuration for tetris will do, as the same library functions are used here.
@anahitH Re: "As for library configuration, yes, we need library configuration for the snake program. Configuration for tetris will do, as the same library functions are used here."
Not sure if this is due to the lib-config or a bug in input dependency analyser:
With the same lib-config input dependency marks alarm_handler
as input independent, which later breaks OH. Tetris, however, marks the very same function as input dependent.
Reproduce by running OH on dataset/snake.bc
@mr-ma You'r right, it's input dependency bug that alarm_handler is marked input independent in snake.
OK @anahitH, filed an issue in the input dependency project.
OH starts injecting hash and assert calls into signal_handler0, which appears to be an input dependent function. Later OH-GDB-Patcher fails to find those asserts at runtime. My first guess (without investigating the whole bc) is that either a) we need a specialised lib-config for snake.bc, or b) input dependency caching pass is marking extracted functions input independent (I think we talked about this in our last meeting).
Here is the faulty BC before patching...