909cf6472b
* Create .inferconfig * Update .inferconfig |
||
---|---|---|
.build | ||
Cilsil | ||
Cilsil.Test | ||
Examples | ||
InferSharpModels | ||
System | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.inferconfig | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Infersharp.sln | ||
LICENSE | ||
NOTICE.md | ||
README.md | ||
RUNNING_INFERSHARP_ON_WINDOWS.md | ||
RUNNING_IN_DOCKER.md | ||
SECURITY.md | ||
TROUBLESHOOTING.md | ||
build_csharp_models.sh | ||
run_infersharp.sh |
README.md
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!
Public Announcements
- InferSharp v1.2 Blog
- InferSharp v1.0 Blog
- Facebook Engineering Blog
- .NET Community Standup
- Visual Studio Toolbox - YouTube, Channel9
Get Started
The latest version is . 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.