Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/10/2010, à 20:45

ehmicky

[Résolu]Créer un dump core file

Salut à tous,

Normalement des signaux comme SIGABRT ou SIGQUIT sont sensés créer (dump) un fichier "core" dans le répertoire courant représentant l'état du programme lors de l'arrêt.
Cependant, rien à faire, je ne réussis pas à créer un tel fichier, que ce soit en C avec un raise() ou autre, ou en faisant un CTRL-\ (SIGQUIT) après avoir lancé une commande Unix.
J'ai regardé dans la man page core(5), il y a des restrictions à la création d'un dump file, au niveau par exemple des ressources du système ou des droits d'accès, mais j'ai beau tout mettre en chmod 777 :

# ls -ld
   drwxrwxrwx 5 root plugdev 4096 2010-10-06 17:25 .
# sleep 10
   ^\Quit
# ls -a
   .           ..

C'est la même chose si je fais un raise(SIGQUIT) (mais c'est pas du Bash, c'est pour ça que j'ai mis ça)
Quelqu'un saurait-til d'où ça vient ?
Merci !

Dernière modification par ehmicky (Le 06/10/2010, à 21:49)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#2 Le 06/10/2010, à 21:00

Peck

Re : [Résolu]Créer un dump core file

La création de core dump est réglé par la commande ulimit.
Le détail est dans man bash, en pratique :
ulimit -c xxxxx

Où xxxx est la taille maximale autorisée par un core.

Hors ligne

#3 Le 06/10/2010, à 21:48

ehmicky

Re : [Résolu]Créer un dump core file

Ca marche !
Avec ulimit -c, j'ai vu que c'est à 0 par défaut en fait, donc pas de dump files !
Par contre, je comprends pas pourquoi :

struct rlimit rlim;
getrlimit(RLIMIT_CORE, &rlim);
printf("Soft limit : %ld\nHard limit : %ld\n", rlim.rlim_cur, rlim.rlim_max);

Me donne 4Ko pour les deux, alors que ulimit -c me donne 0... Je pensais qu'ulimit était juste un wrapper au-dessus de setrlimit() et getrlimit(), mais vu que c'est un builtin, c'est peut-être plus compliqué que ça...
Mais bon l'important c'est que ça marche, merci !

Dernière modification par ehmicky (Le 06/10/2010, à 21:51)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne