In rewriter mode test, the mutator executes the rewritten mutatee and uses waitpid to get the return status of the mutatee, checking whether the mutatee crashed or finished normally.
However, the rewritten mutatee can crash after exit(). For example, global destructor code is executed after exit(). In this case, waitpid seems to return a normal exit code, causing the mutator believes the test finished normally.
I observed this behavior when no tests are reported as crashed, but there are core files generated. The bug in Dyninst that caused the crash is fixed, but the test suite needs to be able to detect such failure mode.
In rewriter mode test, the mutator executes the rewritten mutatee and uses waitpid to get the return status of the mutatee, checking whether the mutatee crashed or finished normally.
However, the rewritten mutatee can crash after exit(). For example, global destructor code is executed after exit(). In this case, waitpid seems to return a normal exit code, causing the mutator believes the test finished normally.
I observed this behavior when no tests are reported as crashed, but there are core files generated. The bug in Dyninst that caused the crash is fixed, but the test suite needs to be able to detect such failure mode.