F3 (Fault localization for Field Failures) is a framework in which we extended our previous technique, BugRedux,with automated debugging capabilities and can help developers not only recreate, but also debug these failures. F3 can synthesize a number of failing and passing executions similar to an observed field failure and use these executions, in conjunction with automated fault localization approaches, to help identify likely causes of the observed failure.

System Requirements:

  • F3 currently works on Linux, and we have not yet tried to compile it on other platforms. The tool relies on the symbolic execution engine KLEE and on the LLVM compiler infrastructure.

    We have tested our latest release of BugRedux on a current version of KLEE that uses LLVM 2.9. Please contact us if you can't find KLEE's installation manual on the version that uses LLVM 2.9.

  • Installation:

    The current version of F3 is also a extension of KLEE. Please refer the installation guide on BugRedux page.

    User guide:

    (1) We extend the original BugRedux by adding an new option for non-stop generation "--use-call-seq-non-stop-replay".

    (2) We also added an option for collecting branch traces "--use-concrete-branch".

    (3) You can apply our implementation of several traditional and optimized fault localization techniques to those generated branch traces. Please rename the extension name of all passing executions to "*.pass" and failing executions to "*.fail" for current implementation of fault localization techniques.


    If you have any question about this tool, feel free to contact Wei Jin.