/infersharp

Infer# is an interprocedural and scalable static code analyzer for C#. Via the capabilities of Facebook's Infer, this tool detects null pointer dereferences and resource leak.

Primary LanguageC#MIT LicenseMIT

InferSharp

InferSharp (also referred to as Infer#) is an interprocedural and scalable static code analyzer for C#. Via the capabilities of Facebook's Infer, this tool detects race conditions, null pointer dereferences and resource leaks. Read more about our approach in the Wiki page.

In addition to implementing the C# frontend, we contributed our language-agnostic serialization layer (Commit #1361) to facebook/infer, which opens up opportunities for additional language support in the future.

New: InferSharp is now integrated in VS and VSCode!

VS Demo Demo

VSCode Demo Demo

Public Announcements

Get Started

The latest version is GitHub release (latest by date including pre-releases). Please refer to the release page for more information on the changes.

VS Extension

Please see here to use InferSharp in VS.

VSCode Extension

Please see here to use InferSharp in VSCode.

Windows Subsystem for Linux

The instructions can be found here.

GitHub Action

The instructions can be found here.

Azure Pipelines

Infer# can be run as an Azure Pipelines container job. An example can be found here.

Docker Image

The instructions can be found here.

Build from Source

Use this Dockerfile to build images and binaries from source. It builds the latest code from microsoft/infersharp:main + facebook/infer:main by default.

Troubleshooting

Please refer to the troubleshooting guide.

Contributing

We welcome contributions. Please follow this guideline.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Security Reporting Instructions

Please do not report security vulnerabilities through public GitHub issues. Instead, please follow this guideline.