Télécharger la liste

Description du projet

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.

Système requise

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

L'objectif principal de cette version est une meilleure portabilité. Un strerror normalisés () est désormais utilisée. Une erreur est survenu alors que EF_NO_LEAKDETECTION a été défini a été fixée. Allocations provenant de bibliothèques standard sont marqués avant ef_init () est appelée pour permettre un traitement spécial en fuite de contrôle. La valeur par défaut dans eftest été modifié pour utiliser deux signaux à la fois: SIGSEGV et SIGBUS. Alignements plus grand que la taille de page sont maintenant autorisés pour memalign (). Le drapeau préprocesseur EF_EXPLICIT_INIT a été ajouté à contourner les environnements buggy. Fuites environnement ne sont plus signalés.
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

Bugs dans la gestion des pages sous Windows où l'espace d'adressage virtuel n'a jamais été distribué a été fixée, mais ce correctif permet d'éviter la mise en commun de la mémoire (sous Windows). ExitOnFail un paramètre a été ajouté à Page_Create (). Un avertissement est maintenant affiché lorsque l'allocation a échoué et ExitOnFail est éteint. _eff_allocate () a été étendu pour cela.
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

Corrections de bogues ont été réalisés dans la gestion de la mémoire. De nouvelles macros ont été prévues et d'en supprimer. Fonctions pour effectuer des contrôles supplémentaires ont été ajoutées pour strdup (), memcpy (), strcpy (), strncpy (), strcat (), et strncat (). Un nouveau commutateur EF_SHOW_ALLOC environnement a été inclus.
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

Ce communiqué de remanie et révise toutes les fonctions internes. Elle ajoute un drapeau préprocesseur EF_OLD_NEW_MACRO pour conserver la compatibilité à la vieille NEW_ELEM () / new_array () macros. Libération de la mémoire déjà libéré est maintenant détectée. Il stocke __FILE__ et __LINE__ de free () pour pouvoir imprimer la position de la première libre. Cette version corrige un bogue qui a eu lieu lors de l'appel eftest avec un nombre plus élevé par exemple 10000. Il y avait des corrections de bugs memalign () qui n'a pas été exportée. Macros et les fonctions sont désormais également définie pour 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

Un drapeau préprocesseur EF_NO_GLOBAL_MALLOC_FREE a été ajouté à contourner les environnements buggy. Cela empêche malloc (), free (), realloc () et malloc () d'être mis en l'espace de nommage global de la bibliothèque ÉFENSE, ainsi que les fichiers qui incluent efence.h attirera l'ÉFENSE malloc () des fonctions de remplacement. Ce drapeau est également utile lorsque l'ordre enchaînement peut pas être contrôlé, par exemple lorsque la mémoire est allouée à partir d'une bibliothèque à l'aide ÉFENSE pas, mais libre () est appelée à partir en utilisant ÉFENSE. Il s'agit d'un problème lors de l'utilisation. Bibliothèques DLL lié avec msvcrt.dll et ses malloc / gratuit sous 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