All Projects → IagoAbal → eba

IagoAbal / eba

Licence: BSD-3-Clause license
EBA is a static bug finder for C.

Programming Languages

ocaml
1615 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to eba

Phpdoc Parser
Next-gen phpDoc parser with support for intersection types and generics
Stars: ✭ 569 (+3964.29%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
lints
Lint all your JavaScript, CSS, HTML, Markdown and Dockerfiles with a single command
Stars: ✭ 14 (+0%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Sonarjs
SonarSource Static Analyzer for JavaScript and TypeScript
Stars: ✭ 696 (+4871.43%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Phpstan Doctrine
Doctrine extensions for PHPStan
Stars: ✭ 338 (+2314.29%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
unimport
unimport is a Go static analysis tool to find unnecessary import aliases.
Stars: ✭ 64 (+357.14%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Sonar Dotnet
Code analyzer for C# and VB.NET projects https://redirect.sonarsource.com/plugins/vbnet.html
Stars: ✭ 466 (+3228.57%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Cfmt
cfmt is a tool to wrap Go comments over a certain length to a new line.
Stars: ✭ 28 (+100%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Prealloc
prealloc is a Go static analysis tool to find slice declarations that could potentially be preallocated.
Stars: ✭ 419 (+2892.86%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
sonarlint4netbeans
SonarLint integration for Apache Netbeans
Stars: ✭ 23 (+64.29%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Phpstan
PHP Static Analysis Tool - discover bugs in your code without running it!
Stars: ✭ 10,534 (+75142.86%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Dg
[LLVM Static Slicer] Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode.
Stars: ✭ 242 (+1628.57%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
nakedret
nakedret is a Go static analysis tool to find naked returns in functions greater than a specified function length.
Stars: ✭ 82 (+485.71%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Sonar Java
☕️ SonarSource Static Analyzer for Java Code Quality and Security
Stars: ✭ 745 (+5221.43%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Phpinspectionsea
A Static Code Analyzer for PHP (a PhpStorm/Idea Plugin)
Stars: ✭ 1,211 (+8550%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
phpstan-nette
Nette Framework class reflection extension for PHPStan & framework-specific rules
Stars: ✭ 87 (+521.43%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
identypo
identypo is a Go static analysis tool to find typos in identifiers (functions, function calls, variables, constants, type declarations, packages, labels).
Stars: ✭ 26 (+85.71%)
Mutual labels:  static-code-analysis, static-analysis, static-analyzer
Revive
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
Stars: ✭ 3,139 (+22321.43%)
Mutual labels:  static-code-analysis, static-analysis
Warnings Ng Plugin
Jenkins Warnings Plugin - Next Generation
Stars: ✭ 248 (+1671.43%)
Mutual labels:  static-code-analysis, static-analysis
tryceratops
A linter to prevent exception handling antipatterns in Python (limited only for those who like dinosaurs).
Stars: ✭ 381 (+2621.43%)
Mutual labels:  static-code-analysis, static-analysis
Forbidden Apis
Policeman's Forbidden API Checker
Stars: ✭ 216 (+1442.86%)
Mutual labels:  static-code-analysis, static-analysis

EBA: An effective bug finder for C

EBA is a prototype bug finder for C based on side-effect analysis and model-checking.

For now, you can use it to find double-lock bugs in the Linux kernel, e.g.:

git clone --depth=1 https://github.com/torvalds/linux.git
cd linux
make allyesconfig
scripts/eba-linux.sh drivers/net

The script will find all C source files under drivers/, call CPP on them, and call EBA to find potential double-locks. Be patient, this may take several hours.

If EBA finds some potential bug in path/to/file.c, it will write the bug traces in _eba/path/to/file.warn:

find _eba/ -iname '*.warn'

Hows does it work?

It combines side-effect analysis and model-checking, check the website for more info: http://www.iagoabal.eu/eba/

Does it really find bugs?

Yes, it really does, check the website for more info: http://www.iagoabal.eu/eba/

Installation

See the Installation instructions.

Running the tests

If you want to run the tests you will need to install cram, for instance using pip:

sudo apt-get install python-pip
sudo pip install cram

You should place eba somewhere in your $PATH:

cram test/*.t
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].