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

SL & STL C++ Discussion :

probleme avec les string sur ITA2 64 bits!


Sujet :

SL & STL C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut probleme avec les string sur ITA2 64 bits!
    Bonjour!

    Voila j'ai ecris ce programme pour tester une petite chose :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
     
    int main (int argc, char *argv[])
    {
      std::string s = "abcdefghijklmnop" ;
     
      int size = s.size();
      printf ("taille de la chaine = %d\n", size) ; 
     
      printf ("test 1\n") ; fflush (stdout) ;
      std::string res (s, size - 4) ; 
      printf ("chaine resultante = %s\n", res.c_str()) ; 
     
     
      printf ("test 2\n") ; fflush (stdout) ;
      res  =  s.substr(size - 4) ; 
      printf ("chaine resultante = %s\n", res.c_str()) ; fflush (stdout) ;
     
     
      return EXIT_SUCCESS;
    }
    Je compile de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    icpc main.o -o main
    Et ensuite, le link :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    icpc main.o -o main
    Pour une execution donnant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    taille de la chaine = 16
    test 1
    chaine resultante = mnop
    test 2
    Erreur de segmentation
    En clair, il plante sur le substring alors qu'il ne me semble pas y avoir de raison particuliere...
    Avez vous une idee?

    J'ai compile ici avec icpc mais je pense qu'avec g++, le comportement est le meme...
    La machine sur laquelle je fais tourner ce programme est un itanium2 64bits.
    Si je ne suis pas sur le bon forum, je m'en excuse!

    Merci!

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu utilises std::string, utilises cout << pour afficher ton texte.

    es-tu sûr de ton substr ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Si tu utilises std::string, utilises cout << pour afficher ton texte.
    Tu as raison!

    es-tu sûr de ton substr ?
    Oui vu que ce programme passe avec une autre version de icpc et sur une autre machine 64 bits....
    La version de icpc qui plante est la 8.1

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Peux-tu faire un suivi pas à pas en mode debug pour voir ce qui se passe ? Si tous les pointeurs sont bien corrects ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Je ne peux pas refaire l'execution avec gdb car je n'ai plus (temporairement) acces a l'itanium.

    Tous les pointeurs etaient correctes.
    De plus, j'ai lance ce bout de code sur une autre machine 64bits et tout se passe bien (meme en analysant avec gdb).

    Cela amenerait a penser qu'il y a un probleme de lib sur itanium?

  6. #6
    Membre averti
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Points : 307
    Points
    307
    Par défaut
    Salut,
    int size = s.size();
    devrait être remplacé
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string::size_type size = s.size();
    non ?

    ça serait étrange que ça provienne de ça quand même.

Discussions similaires

  1. Probleme avec les conteneurs sur visual c++ 2005 express
    Par auron1 dans le forum Visual C++
    Réponses: 22
    Dernier message: 01/01/2008, 14h34
  2. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  3. Tout petit probleme avec les string
    Par bixi dans le forum Delphi
    Réponses: 4
    Dernier message: 06/06/2006, 09h46
  4. Lecture de fichier : Probleme avec les string
    Par soda_o_rat dans le forum SL & STL
    Réponses: 10
    Dernier message: 11/08/2005, 22h59
  5. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50

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