IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Comment faire des coredump error?


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 34
    Points
    34
    Par défaut Comment faire des coredump error?
    Bonjour, je possède un serveur de jeu codé en C.

    Lorsque celui ci plante, nous aimerions bien savoir pourquoi, et qu'est-ce qui l'a fait planté ^^.

    Je sais que sous Windows il existe les Stackdump error, mais sur Linux, je crois que cela s'apelle Coredump error ^^.... core...

    En gros, je voudrais savoir comment les récupérer (je crois qu'il faut ajouter un truc en bash) ces erreurs.

    Je vous remercie!

    Cordialement,
    programmerPhil,

  2. #2
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Les fichiers core sont créer automatiquement lors d'un "plantage".
    Toutefois, on peut limiter la taille des fichiers core avec la commande ulimit -c

    ulimit -c t'affiche la limite actuelle ( il me semble que sur certaines distrib, ca vaut 0 )
    ulimit -c unlimited permet de ne pas avoir de limite

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    D'accord merci (désolé du retard ^^)

    Donc, d'après ce que tu m'as dit, a chaque fois qu'un programme plante, y'a un fichier d'erreur qui ce crée ?

    Et sinon, peux on faire un debug avec ces erreurs?

    Merci beaucoup et bonne fin de journée !

    Cordialement,
    programmerPhil,

    Edit :

    J'ai vu ca :

    SYNOPSIS
    #include <ulimit.h>
    long ulimit(int cmd, long newlimit);

    Faut t'il ajoute un include dans nos sources ? Merci

  4. #4
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    tu n'a pas besoin d'avoir la déclaration de ulimit dans ton projet.
    Tu as juste besoin de changer l'environnement du shell a partir de laquelle tu va lancer le projet afin qu'ils puissent créer un coredump ( avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ulimit -c unlimited
    ).

    Pour avoir un core utilisable, il est bon d'avoir inclus les symboles de debug dans ton projet ( avec l'option -g de gcc/g++ si il s'agit d'un projet C/C++).

    Ensuite, avec ton core, tu peux utiliser gdb de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gdb nom_executable nom_core
    Tu peux ensuite utiliser la fonction bt ( backtrace de gdb ) afin d'avoir la pile d'appel ayant amené au segfault. Il existe evidemment de nombreuses autres fonctionnalités à gdb, je te laisse et reporter aux pages info de gdb

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Yep, enfin, les créateurs du serveur, mon suggéré gdb...

    Sauf qu'il fait des broken pipe, et je veux garder simplement les segment fault!

    Et pour ton "nom_core" je comprend pas ou le trouver xD...

    Excuse moi, je suis quand même assez nouveau dans ce domaine...

    Merci énormément

    Cordialement,
    programmerPhil,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire des etats pour une application web ?
    Par ovh dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 06/07/2021, 03h25
  2. [Debutant] Comment faire des sous-packages
    Par benratti dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/02/2005, 13h46
  3. [SWT] Comment faire des fenetres internes ??????
    Par sebounator dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 22/04/2004, 01h12
  4. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo