[C] SIGSEGV

Fermé
next Messages postés 42 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 6 septembre 2009 - 8 mai 2008 à 03:02
next Messages postés 42 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 6 septembre 2009 - 8 mai 2008 à 13:01
Bonsoir à tous, Voila enfaite ma question est : Pouvez-vous m'expliquer pourquoi défois sans savoir pk alors que mon application fait le meme boulot, il m'alerte que il à reçu le signal SIGSEGV ?

je test simplement l'appli et je lui demande de faire tjr la meme chose, et jamais rien de se passe de bizard, et puis sans savoir pourquoi alors que il fait tjr la meme chose il me dit que il à reçu le signal SIGSEGV... Aucune raison ne me vien parce que si il devais partir en segment fault il me le ferai savoir a chaque lancement.....

3 réponses

Marco la baraque
8 mai 2008 à 03:27
Le segfault arrive lorsque tu essaies d'écrire sur une zone mémoire sur laquelle tu n'as pas les droits.
Par exemple si tu alloues un tableau de taille 10 et que tu écris un mot de taille inférieure ou égale, tu n'auras pas de problème.
Si par contre tu essaie d'écrire un mot de taille supérieure dans ce tableau, alors tu vas rencontrer un segfault.

As-tu des arguments à passer à ton programme? Si oui, alors c'est sûrement eux qui génèrent des segfault s'ils ne "conviennent pas".
4
Bonjour.

Alors les bases :
1.Orthographe
2. Syntaxe/Rédaction
3.Ponctuation
Actuellement on a un post en un bloque sans ponctuation bourré de faute un peu dénué de sens et c'est à nous de décrypter. Alors si tu veux une réponse pertinente, il va falloir faire un effort.

Le problème :
Ça peut venir de plein de raison différente, et c'est pour ça qu'il détailler au max. Se pointer et dire "Bonsoir mon programme marche pas", on peut rien faire.
Alors la base : SIGSEV est un signal envoyé par ton système par ton programme lorsque celui déconne sévère : s'il lit où tente d'écrire là ou il n'a pas le droit, le système le tue en lui envoyant le signal SIGSEGV : Segmentation Violation, ou Segmention fault plus couramment.
Ce programme, est-ce toi qui l'a codé ? Dire qu'il fait toujours la même chose ne nous aide pas trop, et ce n'est pas parce qu'il fait toujours la même chose qu'il fait toujours quelque chose de bien.
Dans tous les cas, le problème vient du programme.
Si tu n'est pas programmeur et que ce n'est pas toi qui l'a codé, tu ne peux de toute façon pas empêcher le programme de segfautler : il a un dysfonctionnement, et 'le système le tueras.
Si tu connais la personne qui l'a programmé, met lui quelques coups de pieds aux fesse et signale-le lui.
Et si c'est toi qui l'a codé, installe gdb, cherche des tutos sur internet, regarde où ça segfault et corrige.

Voila.
2
next Messages postés 42 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 6 septembre 2009 1
8 mai 2008 à 13:01
tu prend la tête parce que, franchement mettre 3 printf(); dans une appli pour moi ça c'est faire tjr la meme chose et ça cause pas de signal sigsev. J'ai posé une simple question et sa prend des proportions énormes. tcho
0
next Messages postés 42 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 6 septembre 2009 1
8 mai 2008 à 03:29
ba justement je lui passe rien du tout. il fait juste appel a deux fonctions rien de plus.
-1