Thanks for this email. However, it is a ReCrash feature. ReCrash
captures all exceptions happened in a method. For example, the
exception of the f (x, true) is caught by abs, but if you consider
only f (x, true), the exception was thrown.
In other words, we add instrumentation like this:
f() {
// add f () in stack
[...]
// remove f() from stack right before return or any legal exit points
return;
}
If exception happens before the stack removal, f() will remain in the
shadow stack. Do you think we should remove this feature? Perhaps we
can compare arguments of f() and remove the same kinds of
arguments/test cases. (For example, test_f3 to test_f7 are the same.)
- Sung
Hi Alex,
Thanks for this email. However, it is a ReCrash feature. ReCrash
captures all exceptions happened in a method. For example, the
exception of the f (x, true) is caught by abs, but if you consider
only f (x, true), the exception was thrown.
In other words, we add instrumentation like this:
f() {
// add f () in stack
[...]
// remove f() from stack right before return or any legal exit points
return;
}
If exception happens before the stack removal, f() will remain in the
shadow stack. Do you think we should remove this feature? Perhaps we
can compare arguments of f() and remove the same kinds of
arguments/test cases. (For example, test_f3 to test_f7 are the same.)