473,396 Members | 1,975 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Any good static analysis tools out there?

This isn't exactly a language question, but I'm curious if any
of the veteran programmers out there could recommend a static
analysis tool for C++. Specifically, I'm looking for something
that can flag unreachable code, possible security errors like
buffer overflows, and identify unused entities. It would also
be great if said tool could identify any headers included un-
necessarily, and perhaps compute some basic metrics. Are there
any tools like this out there for C++? I'm mostly interested
in something that runs on Win32 and Solaris, but I'll entertain
other platforms as well.
Jul 23 '05 #1
2 1811
Hi Derek,

purecoverage and purify from IBM (formerly Rational before "Big Blue"
bought 'em) are probably what you want. I also know of a tool from a
company called "Headway software" that does C++ analysis of your
code, check them out at www.headwaysoftware.com

I have a few "hardened" C++ colleagues that have used the headway
analysis tool and spoke very highly of it. headway tout;

"Rapid Reverse Engineering and Static Analysis of your "as-is" design
for Java, C, C++ or Ada Software"
Either one of those two should provide you with the functionality you
need.

Cheers

Graham

Derek <us**@nospam.org> wrote in message news:<38*************@individual.net>...
This isn't exactly a language question, but I'm curious if any
of the veteran programmers out there could recommend a static
analysis tool for C++. Specifically, I'm looking for something
that can flag unreachable code, possible security errors like
buffer overflows, and identify unused entities. It would also
be great if said tool could identify any headers included un-
necessarily, and perhaps compute some basic metrics. Are there
any tools like this out there for C++? I'm mostly interested
in something that runs on Win32 and Solaris, but I'll entertain
other platforms as well.

Jul 23 '05 #2
grahamo wrote:
Hi Derek,

purecoverage and purify from IBM (formerly Rational before "Big Blue"
bought 'em) are probably what you want


Not if you want static analysis (which is what he asked for). Purify
is about as far from static as you can get. It bashes your code (in
the windows case) at runtime. It provides absolutely ZERO static
analysis. "lint" is an example of a very old static analyser.

Some of the competing products do some static analysis in addition
to runtime work. However, almost everyone I've found (at least on
windows) have significant problems.
Jul 23 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: beliavsky | last post by:
If I run PyChecker on the following program, stored in xtry.py, m = 10000000 k = 0 for i in xrange(m): k = k + i print k x = range(3) print x
9
by: Carlos | last post by:
I'm responsible for the content in a call center's intranet site. There are approximately 600 pages on 7 sub-webs. I have access to the sub-webs, but I don't have access to the root web or web...
1
by: Jens Nordahl | last post by:
On a large scale C++ project we are considering to make a static code analysis tool capable of giving answers to high level questions like (examples): - Which entry points on this layer in the...
1
by: vipindeep | last post by:
Dear reader, Are there any widely used dynamic analysis tools which are used for detecting errors in programming, for example null dereferences, deadlocks, etc.. Some of the tools which I...
5
by: Carlos | last post by:
Hi folks, Can somebody send me references on the subject mentioned tool, both open source and or commercial is fine. Please cc to carlos@istamina.com.ar
14
by: Protoman | last post by:
Is this a good use of fn ptrs? #include <iostream> #include <cstdlib> using namespace std; typedef void (*v_v_fptr)(); void Error(){cout << "Error" << endl;}
44
by: John A. Bailo | last post by:
Dr. Dobbs has a /glowing/ article on Ruby on Rails this month. What do you guys think? Can it replace .net, php and java? And be the Open Source OOP web solution that is not bound to Sun or...
6
by: dspfun | last post by:
I would like to analyze my running c-program. What I would like to know for example is the range of the entire address space of my running c-program (memory reserved for/by the running program),...
20
by: Nikhil Bokare | last post by:
Can anyone suggest me a good, small, easy to use compiler which follows ANSI C standards? I use TurboC for the sole reason that I am quite used to it. It does not follow some of the ANSI C...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.