Bonjour,
Je travaille sous linux RedHat 4.
Mon application C / X11 /Motif plante avec un segmentation fault.
Avec valgrind j'arrive à avoir le renseignement suivant :Cette ligne corresponds à un "return FALSE" dans une procédure appelée par un "XtAppAddWorkProc"; ce return permet de redonner la main à la boucle X. Autrement dit la référence à cette ligne est inexploitable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ==28478== Invalid write of size 4 ==28478== at 0x804E041: put_the_data (exp_hmi_excel.c:396) ==28450== by 0x3A: ??? ==28450== Address 0xBEEDAE44 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes
Je n'avais pas de fichier core, en cherchant, j'ai trouvé que la commande ulimit permet de définir la taille du fichier. Cette commande ne marche pas en csh. Je suis passé en bash et ai défini une taille non nulle pour mon fichier core.
Une fois le fichier core généré, j'ai fait :
gdb ./<executable> ./<core file>
et j'obtiens :
Donc aucune référence à un de mes fichiers sources !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". Core was generated by `'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/valgrind/x86-linux/vgpreload_core.so...done. Loaded symbols for /usr/lib/valgrind/x86-linux/vgpreload_core.so Reading symbols from /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so...done. Loaded symbols for /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so Reading symbols from /oracle/oracle10/lib/libclntsh.so.10.1...done. Loaded symbols for /oracle/oracle10/lib/libclntsh.so.10.1 Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 Reading symbols from /lib/libnss_files.so.2...done. Loaded symbols for /lib/libnss_files.so.2 #0 0x0000000a in ?? ()
Coment puis je avancer ?
Merci de votre aide
Partager