2009 Oct 11
Drivers | Internal Runtime |
External Runtime |
External Post Crash |
External Static Source Analysis |
Code Change Management |
Code Differencing |
Code Search |
Development | Documenting | Bug Tracking |
SQL Report Writer |
Category | Name | Cost | Environ | Documentation | Usage and Notes | |
---|---|---|---|---|---|---|
Drivers | MS Static Driver Verifier |
free | MSWin | MS | Looks at drivers (static) - part of Win Driver Kit. Lang: C, C++. | |
Internal Runtime |
internal code | free + time |
Tools and IDEs | Controlled at compile time and run time, optionally using signature matching (internal code can modify debug state based on system behavior). This requires extensive redesign and refactoring to make a more flexible and complete implementation. Will save substantial debug time. | ||
gprof | free | appliance |
Manuals, More, Multithreaded, Mozilla, FreeSoft, call graph |
Code profiling. | ||
gcov | free | appliance |
How to, Example |
Creates snapshots into web pages of executed code coverage. Can be cumulative over multiple runs. Works with gcc. | ||
External Runtime |
gdb | free | appliance |
man gdb Home URL On line books $0 Pocket Ref. $10 { By Stallman $30, online $0 } Amazon $ |
To observe an already running (and perhaps hung) process,
ssh to appliance and run gdb with command line: gdb attach pid |
|
ddd | free | appliance or linux compile server |
gnu |
A graphical X window front-end for command line debuggers such as: gdb, dbx, wdb, ladebug, jdb, xdb, perl debugger, or the python debugger | ||
valgrind | free | appliance |
home Manuals and FAQs |
Finds run time errors. Manually run process
from command: valgrind optional_switches process |
||
kcachegrind | free | linux |
home |
Cache profiling tool plus call graphs. Works with gcc. | ||
massif | free | linux |
home |
Heap profiler tool. | ||
insure++ | $??? | appliance |
home setup (internal) |
Finds run time errors for C/C++ programs. | ||
purify | $10000 | linux, unix |
setup |
Finds run time errors for C/C++ programs. Requires special compile. Executable is much slower. | ||
External Post Crash |
gdb | free | appliance or linux compile server |
Must have access to executable file and
core file: gdb executable core |
||
External Static Source Analysis Links |
AntiC | free | all |
info source |
C/C++, Java lint program. Does not need to open header files.
Currently available on 10.1.16.1 (rd3) and 10.1.1.7. To use type: antic *.c in any source directory. Or type: antic dir to recursively examine sub directories for source files (default is *.c, and *.java with -java switch). |
|
Axivion | $?? | linux, FreeBSD, HPUX, Solaris, Windows |
home | Defect and security analysis. | ||
BLAST | free | linux, Eclipse, Windows |
home | A software model checker - checks that software satisfies behavioral properties of the interfaces it uses. | ||
C-Metrics | $20 | MSWin | home | Measure cyclomatic complexity (valuable to point out code ineffeciency or complexity) and other static features of C/C++ source files. Can be used on source base using samba. Does not need to be able to open header files named in #include. | ||
cleanscape | $300 | MSWin | home | C/C++ lint program. Needs to be able to open header files named in #include (a problem with our current setup). | ||
CodeCheck | $495+ | dos, mac, linux/unix, os/2, winNT | home | Source code analysis for C/C++, compliance, adherence to specification, complexity, embedded development, maintainability, and portability. | ||
CodeSonar | $4000+ | linux, Solaris, MSWin Mac OS X |
home | Defect and security analysis for C/C++ Ada. | ||
CScout | $?? | linux, FreeBSD, Solaris, MSWin |
home | Defect and security analysis for C. | ||
Devinspect | $2000 | MSWin | HP | Java, .NET, C# and VB | ||
Flawfinder | free | linux | home | Examines C source code and reports possible security weaknesses. | ||
Fortify 360 | ??? | AIX linux Mac OX X MSWin |
ASp, Java, C, Cobol, SQL, VB, ...(17 total). | |||
Klocwork | $2750, $15K for build anal |
AIX linux Solaris MSWin |
home | Examines C, C++, Java source code and reports potential security issues and bugs. | ||
pc-lint | $239 | MSWin | home | C/C++ code checker. | ||
prevent | $10,000+ | BSD linux, Solaris, MSWin Max OS X |
home | Architecture Visualization, Architecture Checking, Interface Analysis, Metrics, Clone Detection, Dominance Analysis, Style Checking, etc. Languages: C, C++, C#, Java. | ||
Rational Software Analyzer |
$3500 | linux MSWin |
home | C, C++ | ||
Source Insight |
$255 | MSWin | home | Source Editer& Graphical Browser for C/C++/C#/Java | ||
splint | free | linux | home | Security-centric lint program. Usage requires command line switches of the form: -Ipath to specify where to find header files named in #include. |
||
understand | $?? | MSWin | home | Helps analyze large code bases in C/C++, Java, Ada, Fortran, pascal, Jovial. | ||
tracer | $?? | MSWin | home | Security analysis of source code. | ||
Veracode SDLC |
$?? | MSWin | home | Security analysis of source code for C, C++, C#, Java, also binary! | ||
Code Change Management |
rcs | free | linux, unix | man rcs | Comes with linux, unix distributions. | |
cvs | free | linux |
home |
Code versioning tool using rcs. | ||
WinCvs | free | MSWin |
home ghome |
A GUI front-end for cvs. Scripting requires TCL or Python. Does not seem to support Samba. | ||
gCvs | free | linux |
home |
A GUI front-end for cvs. Scripting requires TCL. | ||
MacCvs | free | Mac OS |
home |
A GUI front-end for cvs. | ||
ViewCVS or ViewVC |
free | POSIX BSD |
home |
A web-based version control repository browser, currently supporting cvs and Subversion repositories. | ||
perforce | $800+ | linux |
home |
Code versioning tool. | ||
Subversion | free | linux |
home, book, vs. Clear Case |
Code versioning tool. Keyword substitution. |
||
tortoisesvn | free | MSWin | 1 | SVN client - extends shell. | ||
kdesvn | free | linux |
Home:
1,
2 handbook Info: 1, 2, 3, 4, 5 |
GUI for SVN. | ||
Fisheye | $1200+ | linux | 1 | Web base SVN repository viewer. | ||
Code Differencing |
diff | free | linux | man diff | Comes with linux/unix distributions. | |
hdiff | free | linux |
download, Archive |
An html version of diff. Use hdiff -10000 >bugnum.html, to get a context of the previous and subsequent lines of 10000 (default is 2); e.g. hdiff -99999 >bug8888.html. | ||
WinDiff | free | MSWin |
home download |
Shows side by side differences in context of full file. | ||
Compare It! | $27 | MSWin |
home |
Shows side by side differences in context of full file. Supports unicode files. | ||
tkdiff | free | MSWin, linux (avail on 10.1.1.7) |
home |
Shows side by side differences in context of full file. Here is a useful script (tkdiffall) for seeing all changed files: #!/bin/bash for file in `cvs -nq update | grep '^M'|awk '{print $2}'` do echo tkdiff $file tkdiff $file & done |
||
xxdiff | free | linux, IRIX, Solaris, HPUX |
home1, home2, home3 |
Shows side by side differences in context of full file. Also works with cvs and subversion. Uses Python, diff and Qt UI toolkit. | ||
Code Search |
cscope | free | linux, MSWin |
home, cmnd line MSWin |
Allows searching through large code base, uses curses. See Cbrowser for UI based version. | |
CodeSurfer | $?? | linux, Solaris, MSWin |
home |
Allows searching through large code base, nice GUI. | ||
lxr | free | linux, BSD, Unix |
home |
Linux Cross Referencer. | ||
Development | pcyacc | $495- $1995 |
dos, mac, linux/unix, os/2, winNT |
home |
Professional language development tookit. | |
Documenting | doxygen | free | linux |
home Debian |
Uses special comments imbedded in code to generate documentation. | |
Bug Tracking |
mantis | free | linux |
home plugin |
Bug report data base. | |
bugzilla | free | linux |
home |
Bug report data base. | ||
trac | free | linux |
home |
Bug/issue tracking, SW project management, interface to version control, wiki. | ||
Commercial | Info: 1, 2, 3, 4 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | ||||
SQL Report Writer |
OpenRPT | free | linux, Solaris, AIX, HPUX, MSWin, Mac OS |
home |
Similar in functionality to Crystal Reports or the Microsoft Access report writer. Supports PostgreSQL and (with a little work) MySQL, DB2, Oracle, SQL Server, ODBC | |
Static analyzers can find these security bugs:
2005-2009