NPEX-analyzer is NPEX's symbolic executor which infers speification and validate patches by the inferred specification. NPEX-analyzer is built on top of Infer(v1.0). Please see NPEX to see full usage of NPEX.
To infer an specification for a given NPE, we need to prepare the following inputs:
- Buggy Program (compilable by maven or javac)
- NPE Information (Location of NPE: filepath, line, NPE expression)
- Stack Trace (Stack trace of NPE)
- Alternative Expressions
- Capture the program by Infer IR.
- Infer an specification for the given NPE.
- Inferred specification will be stored at "npex-summaries" directory.
- Apply patch to a original program.
- Compile a patched program.
- Validate a patched program w.r.t. the inferred specification.
See INSTALL.md.
NPEX Anlayzer is MIT-licensed. Note: Installation may download and install components licensed under the GPL.