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