Transient Fault Pruning for Effective Candidate Reduction in Functional Debugging