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 :

gcc: erreur d'execution avec -O2


Sujet :

Autres éditeurs

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Points : 63
    Points
    63
    Par défaut gcc: erreur d'execution avec -O2
    Bonjour,

    J'ai actuellement un bout de code qui marche très bien en mode debug, mais dès que la directive -O2 est impliqué, cela cause une erreur de segmentation sur une ligne du code en particulier.
    Le bout de code en question utilise des variables SIMD/SSE, il s'agit d'une soustraction genre A=B-C;

    Quel pourrait être la cause ? Est ce que j'accede à une zone mémoire qui n'est pas allouée ? Comment se fait-il que j'ai une erreur de segmentation avec -O2 et pas sans ?

    Y-a t-il moyen de désactiver la directive -O2 juste pour une ligne de code ?

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    T'as essayé la recompilation complète ?

    Sans bout de code, on va avoir du mal à trouver ce qui cloche dans ton code, aussi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Points : 63
    Points
    63
    Par défaut
    Oui j'ai essayé le recompilation complète plusieurs fois.
    Le problème c'est que c'est une librairie que je n'ai pas programmé (Kiss FFT), et la routine qui pose problème est un petit bout de code qui est appelé des centaines de fois avec des paramètres différents, de différents endroit du code.
    Donc meme si je collais le bout de code, ca n'aiderait pas beaucoup... Je peux juste préciser qu'il s'agit d'une soustraction impliquant 3 endroits mémoire.
    Y-a t-il moyen de désactiver la directive -O2 à cet endroit du code, avec, je sais pas, un pragma ?

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Les données SIMD doivent être alignées correctement (sur 16 octets, de mémoire) pour pouvoir fonctionner, si la librairie ne possède pas les bonnes directives à ce sujet, c'est un gros problème de portabilité / tests qui est en cause... Ou alors, tu lui passes des données incorrectement alignées, ce qui est là aussi un problème.

Discussions similaires

  1. Erreur d'execution avec les composants tJasperOutput et tJasperOutputExec
    Par hagen_71 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 13/10/2014, 15h50
  2. erreur d'execution avec kettle
    Par leithyfa dans le forum kettle/PDI
    Réponses: 6
    Dernier message: 04/08/2009, 19h38
  3. Erreur d'execution avec des Spacers.
    Par Somato dans le forum Débuter
    Réponses: 1
    Dernier message: 07/07/2008, 15h16
  4. Erreur à l'execution avec des dll
    Par Jim_Nastiq dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/03/2007, 15h15
  5. erreur d'execution avec l'utilisation TCOMPORT
    Par thony76 dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/07/2006, 15h47

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