kupl / npex-analyzer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NPEX Analyzer

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.

How To Inference Specification

Preparing Inputs

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

Running Specification Inference

  1. Capture the program by Infer IR.
  2. Infer an specification for the given NPE.
  3. Inferred specification will be stored at "npex-summaries" directory.

How To Validate Patches

Preparing Patches

Running Patch Validation

  1. Apply patch to a original program.
  2. Compile a patched program.
  3. Validate a patched program w.r.t. the inferred specification.

Installation

See INSTALL.md.

License

NPEX Anlayzer is MIT-licensed. Note: Installation may download and install components licensed under the GPL.

About

License:MIT License


Languages

Language:HTML 88.3%Language:OCaml 8.1%Language:Java 1.0%Language:C++ 0.8%Language:Standard ML 0.5%Language:C 0.3%Language:Objective-C 0.3%Language:Makefile 0.3%Language:Shell 0.1%Language:CSS 0.0%Language:Objective-C++ 0.0%Language:AL 0.0%Language:M4 0.0%Language:Python 0.0%Language:Perl 0.0%Language:JavaScript 0.0%Language:OpenEdge ABL 0.0%Language:Dockerfile 0.0%Language:Starlark 0.0%Language:Assembly 0.0%Language:CMake 0.0%