Fog Creek Software
Discussion Board




Reasoning alternatives (static code checker)


I'm trying to find alternatives to the Reasoning service:
  http://reasoning.com/solutions/c_cpp_inspection.html

Does anybody know of any?

Ron E.
Wednesday, March 03, 2004

Sounds like lint to me http://www.gimpel.com/

C Rose
Wednesday, March 03, 2004

... oh, or Splint, if you are of the OSS persuasion http://lclint.cs.virginia.edu/

C Rose
Wednesday, March 03, 2004

Why bother?  It sounds like they are running something like Insure++ or purify on your code, massaging the output, and charging you for the results.

valgrind will do the important 90% of that for free.

Robert
Wednesday, March 03, 2004


The difference is that valgrind, Purify, Insure++, etc are runtime checkers while Flexelint and splint are source code checkers. 

The source code checker is useful because it can potentially find problems before you build. 

Ron E.
Wednesday, March 03, 2004

> The difference is that valgrind, Purify, Insure++, etc are runtime checkers

Insure can find some bugs at compile-time as well.

> It sounds like they are running something like Insure++ or purify on your code

They aren't (they'd need your input data as well).

Instead they build a model of your functions, then perform a limited amount of inter-procedural analysis, and finally verify the results "by hand" to weed out false positives.

In theory, complete search of the model can find all the bugs in your program.

Unfortunately, the problem is exponential on the size of the program, and in practice they can only analyze a small subset of the entire model (all of their examples I've looked at  were trivially small).

This means, that after you've fixed all the bugs they found, you *still* have to do the runtime testing (preferably with Insure/Purify/valgrind), so the added expense is hard to justify, unless you are building a safety-critical system.

Alternatives:

This page lists some:
http://www.cs.nmsu.edu/~jeffery/aadebug.html

In particular,  http://www.polyspace.com/ appears to be exact alternative to reasoning.com

Employed Russian
Thursday, March 04, 2004

*  Recent Topics

*  Fog Creek Home