checker

'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.

This project was a GNU package. It has since been decommissioned and is no longer developed.

Last updated 15 Oct, 2009


User level: Submit a level

User Rating:

Homepage

License(s) :

GPLv2

Rate it!

 

About

Leadership
  • Ben Pfaff - Maintainer
  • Ben Pfaff - Contributor
Requirements
  • gcc 2.8.1 (Use Requirement)
  • gcc (Build Prerequisite)
Related Projects

Memtest86, Memwatch, halloc

Subprograms

checkergcc

Versions

0.9.9.1

0.9.9.1 stable released 2002-08-24

  • Released: 24 Aug, 2002
  • Code Maturity: Stable
  • Licenses: GPLv2

User Community and Support

General Resources

Development

 

Please send comments on these web pages to bug-directory@fsf.org, send other questions to info@fsf.org.

Copyright © 2000 - 2009 Free Software Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301, USA

The copyright licensing notice below applies to this text. Any software described in this text has its own copyright notice and license, which can usually be found in the distribution itself.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.