OVH Cloud OVH Cloud

debugage et fichier CORE

4 réponses
Avatar
Franck
Bonjour,

je commence doucement voir TRES doucement la programmation.
J'ai fait un micro-programme avec un bug de segmentation fault, avec un
pointeur nul. J'attendais de trouver un fichier core...et rien a faire pas
de fichier core. J'aurais pourtant aimer en avoir un pour pouvoir faire
quelques essais modeste sur le debugage.
Si vous pouviez n'indiquer comment faire ou si c'est possible sans
recompiler le noyaux.

j'ai une mandrake 10.1 SMP d'installation par default:

Linux MDK10.1SMP 2.6.8.1-12mdksmp #1 SMP Fri Oct 1 11:24:45 CEST 2004 i686
Intel(R) Pentium(R) 4 CPU 2.40GHz unknown GNU/Linux

merci a tous et le combat pour le libre continu
--

Cordialement,

Franck

4 réponses

Avatar
MB
Quel langage (C je suppose...) ? Quel compilateur ?

Bonjour,

je commence doucement voir TRES doucement la programmation.
J'ai fait un micro-programme avec un bug de segmentation fault, avec un
pointeur nul. J'attendais de trouver un fichier core...et rien a faire pas
de fichier core. J'aurais pourtant aimer en avoir un pour pouvoir faire
quelques essais modeste sur le debugage.
Si vous pouviez n'indiquer comment faire ou si c'est possible sans
recompiler le noyaux.

j'ai une mandrake 10.1 SMP d'installation par default:

Linux MDK10.1SMP 2.6.8.1-12mdksmp #1 SMP Fri Oct 1 11:24:45 CEST 2004 i686
Intel(R) Pentium(R) 4 CPU 2.40GHz unknown GNU/Linux

merci a tous et le combat pour le libre continu


Avatar
Franck
--nextPart13776309.fdjIDCGkf7
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit

MB <M> wrote:

Quel langage (C je suppose...) ? Quel compilateur ?




langage C. Je suis le bouquin : "Programmation linux en langage C" de W W
Gay qui me semble tres bien.
pour le compilateur j'ai gcc:

gcc (GCC) 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

en piece jointe le source avec un segmentation fault, tout ce qu'il a de
plus simple.

ma commande pour le compiler:
gcc -D_GNU_SOURCE bug.c -o bug_out

Cela dit je pensais que c'etait l'OS qui gerait la creation de fichier core,
et non le logiciel...


Cordialement,

Franck
--nextPart13776309.fdjIDCGkf7
Content-Type: text/x-c++src; name="bug.c"
Content-Transfer-Encoding: 8Bit
Content-Disposition: attachment; filename="bug.c"

// c test pour bug

static void fun1(void)
{
char *cp=0;
*cp='!'; // erreur ici
}

int main (int argc, char **argv)
{
fun1();
return 0;
}
//end of file


--nextPart13776309.fdjIDCGkf7--
Avatar
M
Les systèmes sont souvent configurés pour ne pas produire de fichier
core par défaut. Comme ils peuvent faire plusieurs Mo dans certains cas,
ça peut être un moyen d'éviter de saturer l'espace disque.

Tu peux vérifier que ta config ne génère pas de fichier coredump en tapant :
> ulimit -c
0

Si le résultat est 0 (comme ci-dessus), alors c'est normal qu'aucun
fichier core ne soit généré.

Pour autoriser la création d'un core, il faut saisir :
> ulimit -c unlimited

Voilà.
M


MB <M> wrote:


Quel langage (C je suppose...) ? Quel compilateur ?





langage C. Je suis le bouquin : "Programmation linux en langage C" de W W
Gay qui me semble tres bien.
pour le compilateur j'ai gcc:

gcc (GCC) 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

en piece jointe le source avec un segmentation fault, tout ce qu'il a de
plus simple.

ma commande pour le compiler:
gcc -D_GNU_SOURCE bug.c -o bug_out

Cela dit je pensais que c'etait l'OS qui gerait la creation de fichier core,
et non le logiciel...


Cordialement,

Franck


------------------------------------------------------------------------

// c test pour bug

static void fun1(void)
{
char *cp=0;
*cp='!'; // erreur ici
}

int main (int argc, char **argv)
{
fun1();
return 0;
}
//end of file



Avatar
Franck
M <M> wrote:

Les systèmes sont souvent configurés pour ne pas produire de fichier
core par défaut. Comme ils peuvent faire plusieurs Mo dans certains cas,
ça peut être un moyen d'éviter de saturer l'espace disque.

Tu peux vérifier que ta config ne génère pas de fichier coredump en tapant
:
> ulimit -c
0

Si le résultat est 0 (comme ci-dessus), alors c'est normal qu'aucun
fichier core ne soit généré.

Pour autoriser la création d'un core, il faut saisir :
> ulimit -c unlimited

Voilà.
M




Merci bcp, c'est effectivement efficace...et c'est exactement ce qu'il me
fallait
Merci encore M<M>

cordialment
franck