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

Autres éditeurs Discussion :

Signification fno -stack-protector


Sujet :

Autres éditeurs

  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut Signification fno -stack-protector
    Bonjour,

    J'ai une application que je développe et éxecute sans problèmes avec un processeur 32 bits (sur une Mandriva). Je dois utiliser cette application sur une machine 64 bits (Ubuntu). La compilation sur 64 bits fonctionne mais à l'exécution j'ai :

    *** stack smashing detected ***: ./monApplication terminated

    gdb ne donne pas grand chose de plus à part m'indiquer une fonction de parcours d'arbre.

    En googlelisant, je trouve que pour ce type de problème il faut rajouter l'option

    -fno-stack-protector dans CFLAGS du Makefile.

    Cela résoud (ou cache ?) effectivement le problème. Mais je ne comprends pas la signification de ce flag et ce qu'il est censé résoudre. Aussi est-ce que je peux garder cette option lors de la compilation sur 32 bits ?

    Merci

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par djidji Voir le message
    J'ai une application que je développe et éxecute sans problèmes avec un processeur 32 bits (sur une Mandriva). Je dois utiliser cette application sur une machine 64 bits (Ubuntu). La compilation sur 64 bits fonctionne mais à l'exécution j'ai :

    *** stack smashing detected ***: ./monApplication terminated

    gdb ne donne pas grand chose de plus à part m'indiquer une fonction de parcours d'arbre.

    En googlelisant, je trouve que pour ce type de problème il faut rajouter l'option

    -fno-stack-protector dans CFLAGS du Makefile.

    Cela résoud (ou cache ?) effectivement le problème. Mais je ne comprends pas la signification de ce flag et ce qu'il est censé résoudre. Aussi est-ce que
    L'erreur est due à un débordement de pile. Le fait de désactiver le contrôle de débordement de pile avec l'option sus-nommée ne va pas corriger l'origine du défaut qui est dû :
    - soit à une pile trop petite
    - soit à une utilisation trop intense de celle-ci (trop d'appels, récursion infinie ou trop profonde, trop de variables automatiques).

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 12
    Par défaut
    Si la pile est trop petite, peut-on changer sa taille ? comment ?
    Je ne pense pas que ce soit une récursion infine ou trop profonde, car le même programme avec les même données fonctionne sur 32 bits.

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par djidji Voir le message
    Si la pile est trop petite, peut-on changer sa taille ? comment ?
    Peut être. Il faut lire la doc du compilateur.

Discussions similaires

  1. Differences Stack et Heap
    Par elsargento dans le forum C++
    Réponses: 9
    Dernier message: 26/05/2004, 16h10
  2. Réponses: 4
    Dernier message: 22/01/2004, 08h27
  3. Stack overflow
    Par portu dans le forum Langage
    Réponses: 3
    Dernier message: 26/11/2003, 15h16
  4. Recherche la signification d'expressions en C
    Par sbadecoder dans le forum C
    Réponses: 16
    Dernier message: 20/08/2003, 07h35
  5. i386, x86 signification ?
    Par Thcan dans le forum Assembleur
    Réponses: 7
    Dernier message: 04/01/2003, 21h36

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