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

Delphi Discussion :

Compilation sans fin [Bug report]


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut Compilation sans fin
    Bonjour tout le monde,

    Du jour au lendemain le projet sur lequel je travaille depuis 2 ans refuse de se compiler. En fait delphi lance la compil' mais ne l'achève pas et reste sans réponse. Un exe est bien créé mais pas entièrement (les 3 quarts, en taille).
    Je suis obligé de terminer le processus et de relancer Delphi.
    Si je fais crt+9, même résultat. Mais le plus surprenant est que si j'ouvre mon projet, modifie le code et fais une sauvegarde dans la foulée sans compiler, le même problème survient.

    Plus étrange encore: comme je fais régulièrement des zip de mon travail, j'ai voulu recompiler du code antérieur. Et là, surprise: les versions précédentes qui ont jusqu'alors très bien tourné, provoquent la même chose...

    J'ai testé toutes les versions en reculant dans le temps. A partir d'une version, cela remarche. J'ai donc cherché ce qui à changé entre la dernière exécutable et la suivante. Résultat: l'utilisation des handles et de fonctions api me permettant d'envoyer du texte dans une autre appli (remplissage automatisé de formulaires).

    Inutile de préciser que j'ai essayé en supprimant le code suspect. Peine perdue. De plus si je créé un nouveau projet lambda, delphi compile sans soucis...

    Ce que je ne comprend pas c'est pourquoi le code qui marchait ne marche plus aujourd'hui. Pourquoi n'a-t-il pas fait planter delphi tout de suite.

    J'ai pensé alors qu'un update windows pourrait en être la cause.
    Je précise que je bosse sous windows2000 avec delphi 2005 pro
    J'ai également installé D2005 perso chez moi (sous xp sp2) et malheureusement le résultat est le même

    La folie me guette (vraiment), alors si vous avez déjà rencontré ce problème, dites moi qu'il y a encore de l'espoir...

  2. #2
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Curieux ton problème...

    Pour tenter de taider un peu :
    Plus étrange encore: comme je fais régulièrement des zip de mon travail
    Veux-tu dire que tu zippes tes projets avant de les sauvergarder ?

    Si oui, perso je n'aurais pas trop confiance, je sais que non zippé ça prend de la place, mais...

    As-tu entre-temps changé de programme de zippage ?

  3. #3
    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
    Citation Envoyé par David
    Je précise que je bosse sous windows2000 avec delphi 2005 pro
    Vérifie sur le site de codeGear QualityCentral car Delphi 2005 n'est pas le meilleur produit de la gamme.
    Tu peux aussi essayer de tracer avec Filemon cela permettra de voir sur quoi Delphi bloque, enfin si tu as du temps pour faire ça

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    En fait les zip ne sont que des fichiers d'archive, pas de travail.
    Le répertoire de travail n'est pas compressé/décompressé.
    Ce ne sont que des 'photographies' régulières (1x par semaine) qui sont aussitôt mises de coté.

    Le problème ne vient vraiment pas de cela. J'ai parlé des zip uniquement pour souligner le fait que des versions fonctionnelles lorsqu'elles étaient les dernières en date provoquent aussi le plantage mais de manière rétroactive.

    Ceci me laisse supposer que le code contient (et contenait déjà pour les versions antérieures) quelque chose que delphi ne digère plus aujourd'hui.

    Comme on travaille avec des units qui elles-mêmes utilisent l'api Windows, se peut-il que celui-ci ait changé et provoque une sorte de conflit ?

    Mais si c'était le cas je suppose que le forum regorgerait de posts là-dessus, puisque le nombre d'utilisateurs touchés serait conséquent.
    Or, je me sens bien seul sur ce coup-là. La faute à mon code ? Je veux bien, mais alors pourquoi un plantage et non un message d'erreur du compilo ?

    Pour filemon, je ne sais pas de quoi il s'agit mais je vais regarder de ce coté

    Merci pour votre aide

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Faudrait tenter sur la bécane d'un copain (programmeur possédant Delphi...) pour voir si ça boucle ou non en compil...

    Sinon la soluce de la réinstall ou celle de la réparation

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    En fait le problème est apparu sur mon lieu de travail (win2000+D2005Pro)
    J'ai fait le test chez moi aussi (winXP + D2005 Perso)
    le problème reste entier

    Au boulot on à réinstallé sur un autre poste, c'est toujours pareil

    Ca semble quand même lié au code, mais de là à faire planter le compilateur plutôt que recevoir un message d'erreur ...

    J'ai une douzaine de forms et il y en une en particulier que je ne peux pas modifier/sauver sans provoquer ce fameux plantage (sans même compiler !)

    Je vais encore essayer par élagages successifs, mais le boulot est titanesque...

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Je me souviens il n'y a pas si longtemps, idem à deux doigts de devenir chèvre.

    Verdict : j'avais nommé une TForm (création dyn.) comme une autre chose dans le code, dont je ne me souviens même plus.

    Mais perso je ne pouvais pas compiler.

  8. #8
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    j'ai jamai utilisé D2005, alors je te donne une idée le plus bizar,
    suprime tt les fichier à part les *.pas, *.dfm, dpr, bonne chance et ne te fache pas si c'est pas la solution

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    ok, je vais voir de ce coté, c'est forcément lié au code.
    Mais d'un autre coté cette rétroactivité me chiffonne sacrément.
    Imagine : tu commences un projet en janvier et tout va bien jusqu'en novembre.
    Soudain en décembre ça plante. Bon là, je peux comprendre.
    Mais quand tu te rends compte que si tu testes le code de juin à novembre ça ne va plus non plus, y'a de quoi devenir gaga (ça se voit que je bave ?)

    En tout cas merci pour l'intérêt porté à mon problème.

    Si j'en trouve la raison, je mettrai à jour le post, au cas ou un autre Robinson s'échoue sur cette île mystérieuse.

  10. #10
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Pour Edam :
    j'ai jamai utilisé D2005, alors je te donne une idée le plus bizar,
    suprime tt les fichier à part les *.pas, *.dfm, dpr, bonne chance et ne te fache pas si c'est pas la solution
    J'ai essayé tellement de trucs déjà que je sais même plus si je l'ai déjà fait ou pas. En tout cas je viens d'essayer et ça plante toujours.

    Merci pour la note aussi. C'est drôle je savais pas qu'il y avait des soucis à ce point avec D2005...

  12. #12
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    Ma modeste petite idée du soir :

    Ton appli n'est pas en rapport avec une DLL ou un autre objet extérieur ?

    Bref, ce serait cet objet qui flanquerait le boxon, autrement dit, cet objet aurait été modifié entre-temps, contrairement à ton appli elle-même... cette appli lancerait un appel à cet objet, qui lui ne marcherait que sur trois pattes.

    Je cherche à essayer de t'aider comme je peux

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    C'est exactement le sentiment que j'ai. Et cela expliquerait pourquoi les versions précédentes ne marchent plus non plus.
    Malheureusement mon appli ne fait appel à aucune source tierce. Ni dll, ni resources, ni objet.
    Aucun composant autre que la palette de base non plus.

    Aujourd'hui j'ai testé sur D7. J'ai gardé ça pour la fin en guise de solution extrême, à cause des propriétés et compos(groupboutons par expl) introduits par D2005 et devant disparaitre sur une version antérieure.
    Bref, je fait mon petit ménage dans le code (comprendre: mettre des commentaires à tour de bras dans le procedures contenant des objets inconnus).Mais au moment de compiler, horreur, même plantage !

    Ce test à au moins le mérite de désincriminer la version 2005.

    Après de nombreux tests (versions de Delphi, OS, etc), mes investigations vont à nouveau se porter sur le code lui-même.

    J'ai d'ailleurs une piste. En remontant au max la zone des messages d'erreurs (celle ou le compilateur dit que telle ou telle variable n'est pas utilisée etc..) j'ai remarqué un message du genre: " erreur fatale, pas pu compiler unit5.pas"

    Alors peut être je déclare mal mes units dans les en-têtes.
    En gros dans chaque unit je déclare les autres (et réciproquement)

    par expl pour le unit2 je déclare le unit1 dans lequel j'ai aussi déclaré le unit2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
     implementation
     uses Unit1, Unit4, unit11;
    {$R *.dfm}
    ...
    Ca me parait correct, en tout cas ça à toujours bien marché.
    Mais je me demande quand même si ça ne peut pas provoquer des sortes de triangulations ?

    Je vais aller me documenter sur le sujet.

    Merci pour votre aide à tous

  14. #14
    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
    Salut,
    désolé pour le lien sur Filemon, le voici http://www.microsoft.com/technet/sys...tiesindex.mspx
    Dans ton dernier code cité essaie d'inverser la déclaration des uses et de la directive {$R .

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Non, toujours pareil.
    Je crois que je vais "vider" mes procedures jusqu'à ce que ca recompile.
    En plus je peux même pas faire ca dans l'editeur de code, car à chaque sauvegarde ca plante aussi.
    Bon aller, je vais enfiler ma casquette de Bob le Bricoleur.

    Merci encore.

  16. #16
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    J'ai une douzaine de forms et il y en une en particulier que je ne peux pas modifier/sauver sans provoquer ce fameux plantage (sans même compiler !)
    Peut-être en passant en premier cette Form à la moulinette

    Bon courage !

    PS : J'ai trouvé ce lien, mais certainement pas cela... :
    http://www.developpez.net/forums/arc...p/t-43683.html

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Salut à tous,

    Je commençais à penser ne jamais pouvoir conclure ce post positivement... et pourtant, c'est une larme à l'oeil que je peux le mettre 'résolu'.

    J'ai en effet trouvé ce qui plongeait l'éditeur dans le coma.

    C'est en faisant bouton droit sur l'onglet de ma form suspecte, puis 'view as text', que mes soupçons se sont portés vers la .dfm et non plus vers le .pas, puisqu'en faisant cela, j'obtenais le même bloquage.

    Les objets étaient cependant bien imbriqués et rien ne paraissait bizzare.
    J'ai donc essayé de supprimer ce qui n'est pas nécessaire, à commencer par les bitmaps de certains objets.

    L'heureux élu était celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    object ImageList5: TImageList
        Height = 40
        Width = 318
        Left = 278
        Top = 340
        Bitmap = {
          494C01010300040004.....  etc...(très long)...
        }
    Une fois la partie bitmap supprimée, tout à bien redémarré.
    Fin de l'histoire.

    Par contre je n'ai aucune idée de la raison à tout ceci puisque cet Imagelist à très bien marché jusque là, sans même être modifié.

    Si quelqu'un à une explication à ceci ou à rencontré un soucis similaire, je suis preneur.

    Voilà en tout cas si dans le futur ça peut aider quelqu'un, ça aura servi à quelquechose.

    Merci encore à tous.

  18. #18
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par David
    Par contre je n'ai aucune idée de la raison à tout ceci puisque cet Imagelist à très bien marché jusque là, sans même être modifié.

    Si quelqu'un à une explication à ceci ou à rencontré un soucis similaire, je suis preneur.
    Ah! Maintenant que tu en parles, l'enregistrement d'une ressource Bitmap dans le .dfm peut être (très) long. Si l'image est assez grande, on peut effectivement croire que Delphi est bloqué. Alors qu'il suffit d'attendre
    Et il me semble que Delphi enregistre automatiquement les fichiers modifiés lors d'une compilation.
    Donc, lorsque tu compiles, Delphi sauve ton projet et tombe sur cette énorme image... Et rame
    Pour contourner ce problème, j'ai mis les images sur une autre fiche déjà terminée (par exemple, la boite A propos). Comme ça, elle est enregistrée une bonne fois pour toute et je peux modifier/enregistrer les modifications sur les autres fiches rapidement

    Quelle taille faisait cette image?

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    En fait il y a 3 images dans la liste.
    Elles servent pour dessiner un fond dans toutes les Form de l'appli.
    Dans les options je choisi l'une d'elle pour 'skinner' l'appli.
    Leur taille n'est pas énorme car elles sont dessinées en mosaique.
    Ca doit faire pour chacune du 100*30 (de mémoire).
    Simplement quand on fait défiler la dfm ça fait tout de suite un gros paquet.
    le fichier complet fait 540 ko et les bitmaps prennent le tiers des lignes.
    Pas énorme finalement.

    En tout cas ce n'est pas delphi qui rame. Il s'agit d'un plantage de l'éditeur en bonne due Form(e). C'est comme si il verifiait l'intégrité de objets dans la dfm avant de l'écrire et que dans le bitmap il rencontre un couac qui le fait boucler infiniment. Bon, ça c'est ma théorie, je ne sais pas comment fonctionne Delphi en profondeur.

    Par contre bien vu pour l'astuce de mettre dans une Form à part les images.

    a+

  20. #20
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Merci de nous faire partager cette bonne nouvelle David.

    C'est en plus toujours intéressant à savoir.

    Au fait, peut-être s'agit-il indirectement de l'EDI de Delphi.

    Je m'explique, si à l'emplacement sur ton HDD (juste sur ton Bitmap), se touve un ou plusieurs clusters posant des vices d'intégrités d'écriture, enfin peut-être une autre piste.

    En effet des fois c'est frustrant de ne pas comprendre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [D7] Compilation récursive sans fin ?!?
    Par jbat dans le forum Langage
    Réponses: 9
    Dernier message: 08/12/2009, 11h06
  2. C : utilisation de getopt - il boucle sans fin...
    Par moussmouss dans le forum C
    Réponses: 14
    Dernier message: 21/12/2005, 11h35
  3. Boucle sans fin : danger pour le serveur ?
    Par Rémiz dans le forum Langage
    Réponses: 4
    Dernier message: 09/12/2005, 16h52
  4. [SQL SERVER 2000] Fonction utilisateur : boucle sans fin
    Par galinijay dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/09/2005, 16h03
  5. WaitForCompletion sans fin
    Par Brunoo dans le forum DirectX
    Réponses: 3
    Dernier message: 09/09/2004, 18h12

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