checker
Details
| Size: | 545K |
| Last Update: | 2008-05-14 23:53:52 |
| Version: | 0.9.9.1 |
| OS Support: | Linux |
| License/Program Type: | GPL (GNU General Public License) |
| Publisher: | Tristan Gingold |
| Price: | $0.00 |
Description:
checker 0.9.9.1 is utilities software developed by Tristan Gingold.
checker can help find bugs that standard tools cannot always find. The best example is memory leaks. A memory leak is a zone of memory, allocated with malloc that is not used anymore. So the memory allocated is lost.
This means you program needs more memory and runs slower, since your OS might have to start swapping. It detects bad memory accesses such as: reading uninitialized memory, writing in a freed zone, writing or reading outside of a memory block, and using NULL pointers. This is particularly useful for big programs with many functions.
Checker maintains bitmaps to keep track of the status of each byte of memory. The status can be writable, readable, both, or none. When memory is allocated, the new memory becomes write-only: you are not allowed to read it because it has not been initialized.
But when you you write to this new block, those bytes become readable and writable. When the block is freed, the bytes become unreadable and unwritable. Red zones are unreadable and unwritable memory, so that each access to a red zone produces a warning.
Example:
Here's a bogus file example.c:
include < stdlib.h >
int
main ()
{
char zone = malloc (20);
char ptr = NULL;
int i;
char c;
c = zone[1]; / error: read an uninitialized char /
c = zone[-2]; / error: read before the zone /
zone[25] = ' '; / error: write after the zone /
ptr = 2; / error: use a NULL pointer,
must produce a core /
}
To compile this example with Checker, simply use checkergcc instead of gcc:
% checkergcc -o example example.c
Next, to run the example:
% ./example
Execution produces these warnings:
Checker 0.9 (sparc-sun-solaris2.5.1) Copyright (C) 1998 Tristan Gingold.
Checker is a memory access detector.
Checker is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
For more information, set CHECKEROPTS to `--help'
From Checker (pid:04713): `./example' is running (Sun Jan 18 14:56:49 1998)
From Checker (pid:04713): (ruh) read uninitialized byte(s) in a block.
When Reading 1 byte(s) at address 0x000398a1, inside the heap (sbrk).
1 bytes into a block (start: 0x398a0, length: 20, mdesc: 0x0).
The block was allocated from:
pc=0x00022f1c in chkr_malloc at ../stubs/stubs-malloc.c:51
pc=0x0001339c in main at ../example.c:7
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
Stack frames are:
pc=0x000133f4 in main at ../example.c:12
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
From Checker (pid:04713): (bvh) block bounds violation in the heap.
When Reading 1 byte(s) at address 0x0003989e, inside the heap (sbrk).
2 bytes before a block (start: 0x398a0, length: 20, mdesc: 0x0).
The block was allocated from:
pc=0x00022f1c in chkr_malloc at ../stubs/stubs-malloc.c:51
pc=0x0001339c in main at ../example.c:7
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
Stack frames are:
pc=0x00013434 in main at ../example.c:13
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
From Checker (pid:04713): (bvh) block bounds violation in the heap.
When Writing 1 byte(s) at address 0x000398b9, inside the heap (sbrk).
5 bytes after a block (start: 0x398a0, length: 20, mdesc: 0x0).
The block was allocated from:
pc=0x00022f1c in chkr_malloc at ../stubs/stubs-malloc.c:51
pc=0x0001339c in main at ../example.c:7
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
Stack frames are:
pc=0x0001345c in main at ../example.c:14
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
From Checker (pid:04713): (nza) null zone addressed.
When Writing 1 byte(s) at address 0x00000000, inside the NULL zone.
You probably deferenced a null pointer.
THIS SHOULD CAUSE A SEGMENTATION FAULT.
Stack frames are:
pc=0x0001347c in main at ../example.c:15
pc=0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148
pc=0x00013298 in unknown at unknown:0
From Checker (pid:04713): (sig) signal.
Receive signal 11 (SEGV): (default action: terminate core ).
Segmentation fault
checker 0.9.9.1 supports different languages (including english). It works with Linux.
Downloading checker 0.9.9.1 will take several seconds if you use fast ADSL connection.
0 comments
Add to
checker Version History
Related Software
|
|
From category: Other-Tools |
| If you&39;ve ever thought about becoming a GeoCacher, then you know that the only way to get GPX files from GeoCaching. com is to pay for their membership services. That means a regular monthly charg... |
|
|
From category: Utilities |
| File rename utils 1.6.1 is utilities software developed by Steven A.. File rename utils project is a robust bash hacks that enable various file renaming actions. These include upper, lowercase, and... |
|
|
From category: Linux-Distributions |
| This is a free functional version of Linspire with all the proprietary software removed. It comes with a repository of 1500+ software packages available via apt-get or any other package manager. It is... |
|
|
From category: Utilities |
| Epilicious 0.10 is utilities software developed by Magnus Therning. Epilicious is an extension for the Gnome web browser Epiphany. It lets you synchronise your local bookmarks with the bookmarks in... |
|
|
From category: Utilities |
| pinger is a GTK/ncurses multi-ping interface.... |
|
|
From category: Utilities |
| avdist 1.0 is utilities software developed by Lars Arvestad. avdist is a simple tool for bootstrap analysis of haplotype differences. It computes hamming distance between pairs of sequences... |
|
|
From category: Utilities |
| DMD 0.5 is utilities software developed by Wolfgang Jahrling. DMD is a \"Daemon managing Daemons\" (or \"Daemons-managing Daemon\"?), i.e. a service manager that provides a replacement for the serv... |
|
|
From category: Utilities |
| Comono is a Google Desktop Gadget clone for Free desktop systems.... |
|
|
From category: Utilities |
| Frotz 2.43 is utilities software developed by David Griffith. Frotz project is a portable Z-Machine interpreter. Frotz is an interpreter for Infocom games and other Z-machine games. It compl... |
|
|
From category: Utilities |
| amaroK-svn 3.1.1 is utilities software developed by Jocke Andersson. amaroK-svn script installs the current development version of amaroK (from SVN) on your computer. If you\'ve run it once, and th... |
|
|
From category: Backup |
| 1 - Handy Data Recovery
Handy Data Recovery is an easy-to-use data recovery software designed to restore files accidentally deleted from hard disks and floppy drives. The program can recover file... |
|
|
From category: Utilities |
| FileType 0.1.3 is utilities software developed by Paul L Daniels. FileType is a file type detection engine written in C. It will appeal to coders looking for functionality similar to that provided... |
|
|
From category: Utilities |
| Condict 0.6.1 is utilities software developed by Daniel Roberge. Condict is a program for building dictionaries. It is currently in beta form, and is written in Python with the wxPython GUI library... |
|
|
From category: Backup |
| Digital Camera data recovery software is easy and Non-Destructive data recovery software solution which is used to restore, undelete, unerase, recover, retrieve, rescue or repair your lost audio video... |
|
|
From category: Utilities |
| littleutils are a collection of small but useful programs.... |
Leave a comment