Home arrow Software Tools
Static analysis and verification tools

My tools

In my PhD research work I developed the following software tools:

    LEVER - Learning to Verify. Lever can be used to verify specifications or a high level design models for software.  It uses learning techniques to verify that the program meets its specifications.


    DiAna - Distributed Analyzer (This was joint work with Koushik Sen). This implements monitoring of a distributed system using a simple but intuitive logic.

Other tools that I have found very useful:

 Valgrind

One very useful tool for finding memory leaks and errors is Valgrind .  This tool essentially runs the program under test in a simulated environment and instruments the code to watch out for various errors.  I have used Valgrind for a number of debugging sessions and have always found it useful.  It turned out for one example, I had a very subtle memory corruption bug in some library code and I tried to find the bug using other methods like printing, gdb and plain old looking at the code, but was getting quite frustrated.  I then downloaded Valgrind and ran the same programm under Valgrind. Though it took some time to run, but it was a lifesaver.  Valgrind even pointed out to the likely culprit in the code.  Installation was fairly easy and instructions webpage were quite useful. I recommend Valgrind to anyone who is doing C or C++ programming and uses pointers (who doesn't?).

 
< Prev   Next >
Sponsored Links
Tuesday, 09 March 2010