Download List

Descripción del Proyecto

Electric Fence (efence) stops your program on the exact instruction that overruns (or underruns) a malloc() memory buffer. GDB will then display the source-code line that causes the bug. It works by using the virtual-memory hardware to create a red-zone at the border of each buffer - touch that, and your program stops. Catch all of those formerly impossible-to-catch overrun bugs that have been bothering you for years.

System Requirements

System requirement is not defined
Information regarding Project Releases and Project Resources. Note that the information here is a quote from Freecode.com page, and the downloads themselves may not be hosted on OSDN.

2005-08-30 16:43
2.4.16

Portabilidad El objetivo principal de esta versión es mejor. Un strerror normalizada () se usa ahora. Un error que ocurrió cuando se definió EF_NO_LEAKDETECTION fue corregido. Asignaciones de las bibliotecas estándar están marcados antes de ef_init () es llamado para permitir un tratamiento especial en la pérdida de control. El valor por defecto en eftest fue cambiado para usar dos señales a la vez: SIGSEGV y SIGBUS. Alineaciones más grande que el tamaño de página están ahora autorizados para memalign (). La bandera de preprocesador EF_EXPLICIT_INIT fue añadido a trabajar alrededor de ambientes buggy. Fugas de Medio Ambiente ya no son reportados.
Tags: Minor bugfixes
The main focus of this release is better
portability. A standardized strerror() is now
used. An error which occurred when
EF_NO_LEAKDETECTION was defined was fixed.
Allocations from standard libraries are marked
before ef_init() is called to allow special
treatment in leak-checking. The default in eftest
was changed to use two signals at once: SIGSEGV
and SIGBUS. Alignments bigger than page size are
now allowed for memalign(). The EF_EXPLICIT_INIT
preprocessor flag was added to work around buggy
environments. Environment leaks are no longer
reported.

2005-07-25 08:11
2.4.15

Errores en la gestión de la página en Windows, donde el espacio de direcciones virtuales nunca fue puesto en libertad se ha fijado, a pesar de esta revisión se evita la puesta en común de memoria (en Windows). Un parámetro ExitOnFail fue añadido a Page_Create (). Una advertencia se muestra ahora, cuando una asignación y no ExitOnFail está apagado. _eff_allocate () se ha extendido para ello.
Tags: Major bugfixes
Bugs in page management under Windows where virtual address space was never released was fixed, though this fix avoids memory pooling (under Windows). An ExitOnFail parameter was added to Page_Create(). A warning is now displayed when an allocation failed and ExitOnFail is off. _eff_allocate() was extended for this.

2005-07-16 05:54
2.4.14

Correcciones de errores se hicieron en la gestión de memoria. Nuevas macros se establecieron nuevos y eliminar. Funciones para realizar los controles adicionales fueron agregados por strdup (), memcpy (), strcpy (), strncpy (), strcat (), y strncat (). Un interruptor EF_SHOW_ALLOC nuevo entorno ha sido incluido.
Tags: Minor feature enhancements
Bugfixes were made in memory management. New macros were provided for new and delete. Functions for doing extra checks were added for strdup(), memcpy(), strcpy(), strncpy(), strcat(), and strncat(). A new EF_SHOW_ALLOC environment switch was included.

2005-02-13 07:20
2.4.13

Este comunicado reelabora y revisa todas las funciones internas. Añade una bandera de preprocesador EF_OLD_NEW_MACRO para mantener la compatibilidad con NEW_ELEM de edad () / NEW_ARRAY () macros. Liberación de memoria ya liberada se detecta ahora. Almacena __FILE__ y __LINE__ de free () para poder imprimir la posición de la primera libre. Esta versión corrige un error que se produjo cuando se llama a eftest con un mayor número, por ejemplo 10000. Hubo correcciones a memalign () que no se exportó. Macros y funciones son ahora también definidas para valloc ().
This release reworks and revises all internal functions. It
adds an EF_OLD_NEW_MACRO preprocessor flag to keep
compatibility to old NEW_ELEM() / NEW_ARRAY() macros.
Freeing already freed memory is now detected. It stores
__FILE__ and __LINE__ of free() to be able to print the
position of first free. This version fixes a bug that occurred
when calling eftest with a higher number e.g. 10000. There
were bugfixes to memalign() which was not exported.
Macros and functions are now also defined for valloc().

2005-02-03 05:58
2.4.12

Una bandera de preprocesador EF_NO_GLOBAL_MALLOC_FREE fue añadido a trabajar alrededor de ambientes buggy. Esto evita que malloc (), free (), realloc () y calloc () se pongan en el espacio de nombres global de la biblioteca efence, por lo que sólo los archivos que incluyen efence.h llamará a la efence malloc () funciones de reemplazo. Este indicador también es útil cuando la orden de vinculación no se puede controlar, por ejemplo, cuando la memoria se asigna de una biblioteca que no utilizan efence, pero libre () se llama el uso de efence. Este es un problema cuando se usan. Librerías DLL enlazados contra msvcrt.dll y sus malloc / free bajo MS Windows.
Tags: Minor feature enhancements
A EF_NO_GLOBAL_MALLOC_FREE preprocessor flag was added to work around buggy environments. This prevents malloc(), free(), realloc(), and calloc() from being put into the global namespace of the efence library, thus only files which include efence.h will call the efence malloc() replacement functions. This flag is also helpful where the linking order cannot be controlled, for example when memory is allocated from a library not using efence, but free() is called from using efence. This is a problem when using .dll libraries linked against msvcrt.dll and its malloc/free under MS Windows.

Project Resources