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

Windows Discussion :

Exécution différente d'un même programme entre deux Windows


Sujet :

Windows

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut Exécution différente d'un même programme entre deux Windows
    Bonjour,

    L'un de nos logiciels (Delphi7/CLX) pose un soucis étrange sur deux ordinateurs : une popup apparait suite à une série d'actions, annonçant une erreur de vérification d'étendue. Elle bloque bien sûr le logiciel jusqu'à ce qu'on clique dessus. J'ai aussi un Delete() de 8 caractères sur une chaine de longueur 8 qui me laisse une chaine de 1 caractère de long (mais chaine[1] est illisible).
    Ces deux systèmes sont des clones Ghost d'un même disque, en Windows XP SP2 mis à jour régulièrement.

    Sur un autre ordinateur, ayant eu une installation directe (XP SP2 aussi) le logiciel ne pose pas ce soucis. Et le Delete fonctionne correctement également.
    Si on met un disque d'un des PC qui pose soucis sur le PC qui n'en pose pas, le soucis apparait. Et inversemment.

    Donc le soucis vient du système Windows tel qu'il est installé sur les deux premiers PC.

    Précisions :
    - tous ont Symantec AV, firewall XP et rien d'autre.
    - le problème semble plus lié à Windows (son installation) qu'à Delphi, d'où mon post ici.

    Avez-vous déjà eu des choses dans ce genre? Avez-vous une idée de piste? On va continuer les tests croisés pour comprendre, mais on est un peu surpris d'un problème de ce genre.

    Cordialement
    Cédric

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Tu peux donner un screenshot du popup ? T'es sûr que c'est pas un popup Delphi ?
    Pour le Delete(), c'est une fonction Delphi ? Car y'a pas vraiment de gestion de chaînes de caractères par Windows, à priori c'est Delphi qui fait tout.
    Tu peux vérifier les dll utilisées (versions...) sous chacun des postes, avec dependency walker.
    http://www.dependencywalker.com/
    Jette un coup d'oeil aux options régionales, souvent ça explique bien des choses (séparateur '.' ou ',', ...).

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Tu peux donner un screenshot du popup ? T'es sûr que c'est pas un popup Delphi ?
    Pour le Delete(), c'est une fonction Delphi ? Car y'a pas vraiment de gestion de chaînes de caractères par Windows, à priori c'est Delphi qui fait tout.
    Tu peux vérifier les dll utilisées (versions...) sous chacun des postes, avec dependency walker.
    http://www.dependencywalker.com/
    Jette un coup d'oeil aux options régionales, souvent ça explique bien des choses (séparateur '.' ou ',', ...).
    C'est bien un popup lancé par mon application ou une dll utilisée (puisqu'elle est bloquée tant qu'on n'appuie pas dessus), mais rien dans mon code ou dans celui des composants utilisé (et dont j'ai le code) n'appele une popup.

    Delete() est une fonction Delphi qui supprime des caractères dans une chaine. Et j'ai fais assez de tests croisés pour garantir qu'elle a un comportent incohérent sur une installation de Windows, et pas sur les autres.

    Surtout mon gros soucis est qu'une version de Windows pose les deux problèmes mentionnés, et pas une autre. Les options régionales ont déjà été harmonisées, je vais voir en effet les dépendances.
    Je ne pense pas qu'il faille chercher une cause évidente sur ce problème, plutôt un truc bien vicieux. Enfin si vous avez une explication simple ça m'arrange bien quand même!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Faut arriver à créer un petit programme qui reproduit l'erreur et analyser au débogueur.
    Pour Delete() par exemple, c'est du code Delphi. Faut tracer son exécution dans le code source de la CLX sur la machine qui pose problème, et trouver où ça se comporte différement.
    Attention aussi à ne pas chercher l'erreur où il n'y en a pas, genre à un endroit de ton programme il y a une corruption de la mémoire et la suite n'est que la conséquence de cette corruption...

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Justement, le code mentionné dans un petit programme fonctionne correctement. Dans le plus gros, il plante systèmatiquement avec la bonne séquence d'actions. Je vais essayer de tracer en effet, même si la puissance des machines utilisées (des Via C3) aide pas vraiment pour Delphi.
    On va résoudre ça en testant sur des systèmes Windows réinstallés, mais clairement j'aimerais comprendre

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Ton opération de ghost vérifie t-elle l'intégrité du disque en fin d'installation ?

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Oui, et l'originale est aussi touchée par ce problème.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Oui il est crucial d'identifier la séquence d'action minimale qui cause le problème. Tu fais des appels directs à l'API Win32 ?

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Aucun non. C'est bien le truc qui m'étonne.

Discussions similaires

  1. Deux écritures différentes pour un même programme
    Par while.dede dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 13/03/2015, 14h49
  2. Réponses: 4
    Dernier message: 26/08/2009, 21h55
  3. Réponses: 17
    Dernier message: 17/10/2008, 09h30
  4. Temps d'exécution différent pour une même tâche
    Par franculo_caoulene dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 26/03/2008, 08h41
  5. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40

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