/alpha_leak

A Leak Checker for ATOM on ALPHA systems.

Primary LanguageC

LEAKY THE LEAK CHECKER

Also known as The Nirvana Leak Checker

Because "alpha is dead, sort of like kurt cobain"

0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o
o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0
0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o_0_o

LEAKY is a simple memory usage checker for programs that
use malloc, valloc, calloc, realloc, and free. It is able
to report the memory location and line number (of allocation)
of memory that is not freed on program termination (be it
normal or through SIGTERM, SIGSEGV, SIGABRT, SIGBUS, SIGILL, 
or SIGFPE). LEAKY also reports double free errors, free-without
allocate errors, NULL parameter values to free and NULL
return values from malloc. It was built using the ATOM 
program analysis framework by DEC.

LEAKY was written by Kunle Oyedele and Bryce Cronkite-Ratcliff 
as part of a class project for CS343 taught by Dawson Engler 
in Spring Quarter 2014 at Stanford University. 
It was developed on an DEC AlphaServer 1000 4/266.

As far as I'm concerned, you can use this for whatever you want.
Seriously. 

There used to be more tests but they were solutions to CS107
assignments, so we have refained from including them.
 
OPERATION:

To run, if you have only one source file.
./leaky.sh [source file name]

To run, if you have a more complicated setup:
The Atom Instrumentation and Analysis source files are included,
leaky.inst.c
leaky.anal.c
So, follow the atom usage instructions. For most simple setups, 
this simply involves compiling your application, then calling:
# atom [executable file] leaky.inst.c leaky.anal.c -o leaky.atom 
# ./leaky.atom
The output of leaky's analysis will then be found in leaky_output.txt

Make sure to compile the application to be instrumented
with debugging symbols (-g) in order to record line number in leaky output.