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

Lazarus Pascal Discussion :

[1.4/Linux] Comment corriger un programme au fonctionnement aléatoire ? [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut [1.4/Linux] Comment corriger un programme au fonctionnement aléatoire ?
    Bonjour,

    je bosse sur un comparateur visuel de morceaux musicaux, et un comportement étrange me fait m'arracher les cheveux…

    je lance le prog avec F9, j'ouvre un fichier de playlist (un bête fichier texte avec une liste de morceaux de musique précédés de leur chemin) et je fais créer autant de frames que de morceaux avec dans l'idée que l'affichage des morceaux sera proportionnel les uns par rapport aux autres et par rapport au plus grand, chose assez simple normalement puisqu'il suffit de 2 boucles, une première pour connaître le morceau le plus long et une seconde pour adapter la longueur des autres morceaux à ce plus long, mais avec moi rien n'est jamais simple :

    Nom : bug_intermittent_playlist.png
Affichages : 329
Taille : 133,0 Ko

    Un premier run (mais des fois il est bon, hé ouais…) me tronque le rendu des waves (image du haut, où les waves sont étirés et ce qui déborde à droite est perdu) car la longueur de la fenêtre d'affichage est correcte (erreur dans le calcul des bpp's ?) alors que le run suivant est bon (image du bas, où j'ai inclus en 4e position le morceau "le plus long").
    Je dis bien "run", c'est-à-dire qu'après l'erreur je ferme et rouvre le prog.
    Et il s'agit strictement des mêmes morceaux, puisque issus d'un unique fichier .pll (extension perso pour dire PLayList).

    Une idée de comment me sortir de ce pétrin ?

    Une piste (que je remarque à l'instant, mais qui ne m'avance à rien) : dans l'image du bas (la bonne), on voit des traits bleus clNavy qui séparent le canal gauche en vert du canal droit en rouge, traits qui n'apparaissent pas sur l'image du haut. Et ça n'est pas une piste, c'est une complexité de plus car, encore une fois, c'est toujours les mêmes boucles qui font le même taf sur les mêmes fichiers, mais un coup bien et un coup mal, allez comprendre !
    Contexte : ma vieille machine Linux - Debian 32 bits avec son vieux Lazarus 1.4 et la librairie Bass 2.4.15, pas la dernière mais presque.

    Sinon, Joyeux Noël, hein, c'est de saison, , en espérant que le petit papa Noël connaîtra la soluce à ce problème bien costaud…

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 970
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 970
    Par défaut
    Bonjour,

    C'est un gag, ou faut-il commander une boule de cristal au type en rouge ?

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut
    Citation Envoyé par droggo Voir le message
    C'est un gag,
    Ben non, pas du tout, c'est ce que je vis au quotidien, tiens, regarde, j'ai bricolé un autre montage, de haut en bas le fichier 1 bad puis good, puis le fichier 2 puis le 3 :

    Nom : compar001-002-003.png
Affichages : 300
Taille : 32,1 Ko

    Et la seule différence entre ces rendus, c'est l'arrêt-redémarrage du programme.
    Ce qui est curieux avec le fichier 3, c'est que la toute fin du bad ressemble beaucoup à celle du good, mais ça doit être pour compliquer l'affaire !

    Alors oui,
    Citation Envoyé par droggo Voir le message
    faut-il commander une boule de cristal au type en rouge ?
    j'ai peur que ça s'impose, n'ayant aucune explication logique, sensée et rationnelle…

  4. #4
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Sans rentrer dans le détail de ton programme, ce genre de problème : "un fonctionnement aléatoire", est pour la plupart du temps, dû à un défaut d'initialisation d'une variable ou autre.

    Si ce n'est une solution, c'est une piste ...

    Cordialement.

    Pierre.

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut
    Bonjour et merci de ta réponse,

    Citation Envoyé par ChPr Voir le message
    […] un défaut d'initialisation d'une variable ou autre.
    Comme si l'accès à une variable, dont l'emplacement (et donc le contenu) change en fonction de l'environnement global du prog (nombre de progs en cours d'exécution, nombre de pages ouvertes dans le navigateur web, etc.) pouvait impacter le fonctionnement du prog ?
    Bizarre car j'initialise tout au FormCreate et surtout, quand j'ai le défaut, je me contente d'arrêter le prog et de le relancer, sans toucher au navigateur web ni lancer d'autres progs, plus le fait que je surveille les messages du compilateur et qu'une "variable non initialisée" m'est signalé, traqué et corrigé.

    Je vais continuer à creuser…

    Bonne journée,

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 970
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 970
    Par défaut
    Bonjour,
    Citation Envoyé par Jipété Voir le message
    Ben non, pas du tout, c'est ce que je vis au quotidien, tiens, regarde, j'ai bricolé un autre montage, de haut en bas le fichier 1 bad puis good, puis le fichier 2 puis le 3
    Par "C'est un gag", je soulignais qu'il est difficile de trouver le problème d'un programme sans disposer du code. !)

    La balle est dans ton camp.

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut
    Yop !

    Citation Envoyé par droggo Voir le message
    Par "C'est un gag", je soulignais qu'il est difficile de trouver le problème d'un programme sans disposer du code. !
    Oui je sais bien, je ne l'ai pas mis car
    1- c'est vraiment trop brouillon ;
    2- je ne change rien au code, je me contente de faire F9 et parfois ça foire et d'autres fois c'est bon, c'est ça qui m'anéantit.

    Je continue à chercher la variable mal initialisée…


    Merci à celui qui a corrigé le tag de la discussion.

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 970
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 970
    Par défaut
    Bonjour,
    Citation Envoyé par Jipété Voir le message
    Yop !


    Oui je sais bien, je ne l'ai pas mis car
    1- c'est vraiment trop brouillon ;
    2- je ne change rien au code, je me contente de faire F9 et parfois ça foire et d'autres fois c'est bon, c'est ça qui m'anéantit.

    Je continue à chercher la variable mal initialisée…


    Merci à celui qui a corrigé le tag de la discussion.
    Donc ton code merde !

    Et tu avais déjà fait ce genre de réponses dons un autre sujet, et j'y avais rappelé qu'il faut dès le départ programmer proprement.

    Donc, si ça te plaît de faire n'importe quoi, pour ensuite venir demander de l'aide, sans nous fournir le nécessaire, libre à toi, mais en ce qui me concerne, c'est la toute dernière fois que j'interviens dans un de tes sujets.

  9. #9
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut
    Bonjour bonjour,

    En fait, ce fut un poil plus compliqué que ça car ce que vous voyez sur les copies d'écran c'est une mainform qui affiche un mainpanel qui propose autant de slavepanels que de morceaux de musique, ces slavepanels affichant une TFrame complète avec panels, TImage et autres composants.

    Et bien sûr il a fallu prendre en compte le resize de la fiche qui impacte tous les slavepanels tout comme la modification d'une frame (changement de morceau) ou son déplacement dans la liste ou sa suppression, toutes choses impactant cette frame et par conséquent toutes les autres.
    Surtout en voulant que les affichages soient proportionnels les uns par rapport aux autres et par rapport au plus grand de tous.

    Mais je m'en suis sorti en, oui, remettant tout à plat.

    Merci à tous, et le 0,01 % de Guesset je l'ai déjà vécu, ça fait bizarre je vous jure.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/03/2016, 15h09
  2. Programme qui fonctionne aléatoirement
    Par HeadQuaker dans le forum Langage
    Réponses: 12
    Dernier message: 14/12/2012, 16h22
  3. comment compiler un programme c sous linux?
    Par diengsallah dans le forum Linux
    Réponses: 11
    Dernier message: 13/09/2009, 08h57
  4. Réponses: 15
    Dernier message: 30/05/2009, 13h53
  5. comment desinstaller un programme sous linux
    Par reg01 dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 15/05/2007, 16h42

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