Electric Fence (or eFence) is a memory debugger written by Bruce Perens. It consists of a library which programmers can link into their code to override the C standard library memory management functions. eFence triggers a program crash when the memory error occurs, so a debugger can be used to inspect the code that caused the error.
Electric Fence is intended to find two common types of programming bugs:
- Overrunning the end (or beginning) of a dynamically allocated buffer
- Using a dynamically allocated buffer after returning it to the heap
In both cases, Electric Fence causes the errant program to abort immediately via a segmentation fault. Normally, these two errors would cause heap corruption, which would manifest itself only much later, usually in unrelated ways. Thus, Electric Fence helps programmers find the precise location of memory programming errors.
Electric Fence allocates at least two pages (often 8KB) for every allocated buffer. In some modes of operation, it does not deallocate freed buffers. Thus, Electric Fence vastly increases the memory requirements of programs being debugged. This leads to the recommendation that programmers should apply Electric Fence to smaller programs when possible, and should never leave Electric Fence linked against production code.
Electric Fence is free software licensed under the GNU General Public License. Last version (2.1.13) was released 2003-12-07.
Famous quotes containing the words electric and/or fence:
“Thats the down-town frieze,
Principally the church steeple,
A black line beside a white line;
And the stack of the electric plant,
A black line drawn on flat air.”
—Wallace Stevens (18791955)
“There is no fence nor hedge round time that is gone. You can go back and have what you like of itif you can remember.”
—Philip Dunne (19081992)