Re: gcc

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: gcc
Vincent Caron a écrit :
> On 10/04/2013 20:22, Patrick Dupre wrote:
>> [...] Je soupconne des ecriture en memoire non alloue.
>> Est-ce qu'il y aurait des options qui me permette de confirmer
>> ou d'infirmer mes soupcons ?
>
>    La meilleure arme est Valgrind.

>
>    Mais la plus cheap se fait via les variables d'environnement qui
> peuvent modifier le comportement de malloc() dans la glibc, cf. man
> mallopt(3). [...]


Autrement, un truc que je trouve facile à utiliser : Electric Fence.
C'est un remplaçant de malloc qui utilise le MMU pour rendre
inaccessibles les zones libérées par free() et l'espace juste derrière
ce que retourne malloc(). Du coup, au premier accès illégal, même en
lecture, tu as direct un core dump :

     sudo apt-get install electric-fence
     gcc -ggdb le_programme.c -lefence -o le_programme
     ulimit -c unlimited
     rm -f core
     ./le_programme           #  <= Segmentation fault (core dumped)
     gdb le_programme core


Et gdb te t'indique direct la ligne de code qui a fait l'accès illégal.

Edgar.