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 :

segmentation fault pthread


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 29
    Par défaut segmentation fault pthread
    Bonjour a tous,

    Actuellement stagiaire au sein d'une entreprise de sécurité informatique, je dois développer une bibliothèque partagée sous Linux et la charger dynamiquement lors de l'exécution de mon main.

    Jusque là tout va bien jusqu'à obtenir le message d'erreur que tout le monde adore "Segmentation fault".

    Donc je lance gdb ... qui me dit

    Program received signal SIGSEGV, Segmentation fault.
    0xb7fc5cc6 in pthread_create@@GLIBC_2.1 () from /lib/libpthread.so.0
    (gdb) where
    #0 0xb7fc5cc6 in pthread_create@@GLIBC_2.1 () from /lib/libpthread.so.0
    #1 0xb7fc62f8 in pthread_create@GLIBC_2.0 () from /lib/libpthread.so.0
    #2 0xb7fdcc31 in Start (Path=0xbffff424 "./", ServerName=0xbffff3f2 "MTLSServerTest") at libmtlsc4linux.c:251
    #3 0x08073871 in main (nArgs=5, Args=Cannot access memory at address 0x4
    ) at mtls_client4linux.c:172
    Pour vous aider voici les proto en question


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    rc = pthread_create(pSession->hThread, NULL, Client_Thread, (void *) &pSession);
            if(!rc)
            {
                    printf("ERROR: return code from pthread_create() is %d\n", rc);
                    return !0 ;
            }
     
    typedef struct
    {
            char * ServerName;
            char * ClientName;
            pthread_t* hThread;
    } 
     
    void* Client_Thread(void *lpParameter)
    Voila si quelqu'un à la moindre d'idée d'où peut provenir cette erreur et qu'il m'en fait part je lui en serais reconnaissant !

    Merci à tous et bonne fin de journée

    P.S : j'oubliais de préciser que bien entendu lors de la compilation de mon prog j'ajoute le fameux "-lpthread" histoire d'éviter à certains une perte de temps :p

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    • merci d'utiliser les balises code !
    • montre nous comment tu alloue ton pSession
    • et montre le résultat de bt full (qui est plus complet que where), au besoin compile avec -g


    Un modo ? je pense que ça devrait être bougé dans le forum C non ?

  3. #3
    Membre actif
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 29
    Par défaut
    C'est bon j'ai trouvé tout seul merci a ceux qui y ont réfléchi à la question !

    P.S : pour les intéressés l'erreur venant du dernier paramètre de la fonction pthread_create en effet j'envoyais (void *)&psession au lieu de (void *) psession grosse erreur de ma part

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Tout seul... Si D[r]eadLock te demande "comment tu alloue ton pSession", ce n'est pas pour rien. Et le pauvre il se prend -1.

Discussions similaires

  1. Pb segmentation fault avec glutinit()
    Par pipistrelle dans le forum GLUT
    Réponses: 2
    Dernier message: 17/11/2004, 23h17
  2. [SDL_Image] Img_Load : segmentation fault ....
    Par Mathieu.J dans le forum OpenGL
    Réponses: 6
    Dernier message: 19/10/2004, 23h52
  3. [REDHAT] Segmentation fault systematique
    Par mela dans le forum RedHat / CentOS / Fedora
    Réponses: 2
    Dernier message: 21/09/2004, 06h05
  4. Réponses: 13
    Dernier message: 13/07/2004, 15h41
  5. Comment contrer la "segmentation fault" ?
    Par guillaume_pfr dans le forum C
    Réponses: 15
    Dernier message: 08/08/2003, 13h43

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