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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    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 chevronné 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
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    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 chevronné 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
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    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