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

C Discussion :

Compilation et organisation memoire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut Compilation et organisation memoire
    Bonjour,

    voici un bout de code (simplifié) issu de mon projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    static double tab1[100];
    static double tab2[50];
    static double tab3[100];
    En fait, la taille de "tab2" est insuffisante, il devrait contenir 100 éléments. Un peu plus loin dans mon code, je remplis les 100 éléments de "tab2". Comme il est mal alloué, j'écrase quelquepart des infos dans la mémoire. Comme tab2 est "static" et est entourée de variables "static", je n'ai pas de "segmentation fault" à l'execution, par contre, je ne connais pas la variable qui voit son contenu écrasé. Après recherche, je me rend compte que la variable écrasée n'est pas la même en fonction de la machine sur laquelle je compile. Ma question est donc : existe-il un flag de compilation qui me permet de fixer l'organisation dans la mémoire des variables (allouées en static) ?

    Car mon probleme c'est que, en fonction de la variable qui est écrasée, un bug comme celui decrit ci-dessus est plus ou moins grave. Or quand on me signal un symptome, observé sur une machine et conséquence d'un bug, de mon côté, j'ai beau avoir le même bug, je n'observe pas le même symptôme.

    Merci de vos lumières

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    A mon avis, corriger le bug sera moins prise de tête que de faire l'inventaire des comportements possibles en cas d'exécution du bug.

    En plus tu sembles connaitre la cause du bug (tableau trop petit) donc soit tu agrandis la variable soit tu corriges la fonction pour ne pas qu'elle sorte des limites de la variable.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    biensûr que j'ai corrigé le bug. La question n'est pas là. Je travaille sur un très gros projet qui peut être compilé et executé sur plusieurs machines différentes. J'ai des utilisateurs qui me remonte des bugs que je n'ai pas sur ma machine. Etant donné le genre de bug exposé avant, j'aimerais que le script de compilation donne exactement la même chose, quelle que soit la machine (attention, quand je dis "machines différentes", ce n'est pas non plus "radicalement différentes" : ce sont des machines Linux, 64 bits)

    Merci

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par corentin59 Voir le message
    ... Car mon probleme c'est que, en fonction de la variable qui est écrasée, un bug comme celui decrit ci-dessus est plus ou moins grave. ...
    Non, c'est toujours très grave ! On doit considérer que le programme est irrémédiablement détruit même sans symptomes apparents.

  5. #5
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Eh, si je pose la question, c'est bien que je veux corriger le bug !

    Ma phrase était peut-être malheureuse, je voulais dire que "la conséquence du bug est plus ou moins visible" d'autant plus que cette conséquence dépend de la machine, d'où ma question ...

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Si tu veux qu'un bug soit très visible, tu peux utiliser les assertions ( je sais plus si ça existe qu'en C++ , donc vous pouvez tirer si j'ai dit une connerie ).
    Enfin tout un système qui permet de prévenir des cas de bugs avant que le programme ne plante ( mémoire alloué ? ... structure pour faire un tableau un peu plus poussé ... ( soit liste chainée like ) )
    Tu peux aussi préparé des séries de tests ... ( enfin si c'est possible )

    Enfin je propose, par ce que je suis pas sur de tout saisir ... :s
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    En fait, indépendamment du bug décrit, j'aurais voulu savoir s'il existe un moyen (par exemple des flags de compilation à mettre ou à ne pas mettre) pour être sûr que la compilation se fasse exactement de la même manière, quelle que soit la machine sur laquelle on compile ?
    Merci

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par corentin59 Voir le message
    En fait, indépendamment du bug décrit, j'aurais voulu savoir s'il existe un moyen (par exemple des flags de compilation à mettre ou à ne pas mettre) pour être sûr que la compilation se fasse exactement de la même manière, quelle que soit la machine sur laquelle on compile ?
    Si je comprends bien, tu voudrais des flags qui forcent les comportements definis par l'implementation, les comportements non specifies et les comportements indefinis a se comporter de la meme maniere sur toutes les implementations. Non, il n'y en a pas.

Discussions similaires

  1. Réponses: 12
    Dernier message: 13/08/2007, 23h52
  2. [Maven/Struts] Organisation et compilation
    Par romaintaz dans le forum Maven
    Réponses: 1
    Dernier message: 27/03/2006, 16h14
  3. L'organisation de la mémoire
    Par vincent0 dans le forum Administration système
    Réponses: 5
    Dernier message: 11/12/2005, 12h38
  4. pb organisation memoire en string
    Par charonDZenfer dans le forum SL & STL
    Réponses: 5
    Dernier message: 13/08/2004, 16h19
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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