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

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    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 : 287
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…
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Expert confirmé

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

    C'est un gag, ou faut-il commander une boule de cristal au type en rouge ?
    Si les cons volaient, il ferait nuit à midi.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    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 : 259
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…
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    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,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    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.
    Si les cons volaient, il ferait nuit à midi.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    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.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    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.
    Si les cons volaient, il ferait nuit à midi.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Coucou,

    Citation Envoyé par droggo Voir le message
    Donc ton code merde !
    Oui je sais, mais il manque un mot dans ta remarque, un mot qui change tout : "parfois".
    Mon code merde parfois, et parfois pas, et c'est sur ce point que je me demandais qui et quoi pouvaient bien coincer, et où.
    J'ai tout revu de fond en comble, j'ai viré des trucs en double, des trucs inutiles, on dirait que ça tient la route, maintenant, alors je croise les doigts et je touche du bois,

    Citation Envoyé par droggo Voir le message
    il faut dès le départ programmer proprement.
    Quand on sait exactement où l'on va et qu'on a un cahier des charges. Mais ce qui me concerne, je programme un peu comme je me balade en vélo : j'avance, j'avance et d'un coup je remarque une nouvelle fleur qui n'était pas là hier alors je tourne pour aller l'examiner au lieu de continuer tout droit, et à partir de là ma nouvelle route est différente de ce que j'avais prévu au départ.
    Bah, faut laisser de la place à l'imprévu et à l'improvisation,

    Citation Envoyé par droggo Voir le message
    Donc, si ça te plaît de faire n'importe quoi, […]
    Des fois ce n'est pas moi qui fais n'importe quoi, ça me fait penser aux soucis déments que j'ai eu avec la nouvelle machine, son Debian 10.6 et (cette cochonnerie de) SystemD qui est là pour nous simplifier la vie, il parait, et qui met une pagaille dans l'arrangement des disques, c'est impressionnant !, enfin, quand on en a plusieurs (3 en ce qui me concerne). Des fois, au power-up, le premier disque n'était pas le premier câblé sur la carte-mère, du coup, changement de leurs noms et des partitions qui y sont définies dessus, va t'y retrouver avec ça, peut-être des histoires de démarrage d'un disque plus rapide aujourd'hui qu'hier, des heures à examiner les logs, in fine un truc ingérable sauf à coup de scripts et de désactivation du montage dynamique des disques (et donc retuning et recompilation du noyau, je vous passe les détails), ce fut effroyable.

    Citation Envoyé par droggo Voir le message
    c'est la toute dernière fois que j'interviens dans un de tes sujets.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    Salut

    Désolé de prendre la conversation en cours de route.

    Bon chaque frame correspond aux notes de musique réparties dans le temps.
    1. Ta première opération consiste donc à réduire ta zone d'affichage au plus long morceau ;
    2. La deuxième serait de calculer le coefficient d'affichage par unité de temps du morceau précité ;
    3. La troisième étant d'appliquer ce coefficient à l'ensemble de tes frames.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  11. #11
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 334
    Points : 4 156
    Points
    4 156
    Par défaut Shannon es tu là ?
    Bonjour,

    Comment est construit l'affichage ? Pour être simple, si par exemple il faut afficher 500 000 échantillons sur une frame de 1 000 points de large, il y a au moins 2 types de méthodes :
    • celle simple qui s'inspire de l'algo de Bresenham et qui ici prendra un échantillon sur 500. C'est un sous échantillonnage caractérisé et le moindre décalage (l'erreur initiale est souvent fixée à 250 dans ce cas) peut changer toute la courbe. Il n'en reste pas moins qu'il faut que quelque chose varie entre deux passages pour que les différences explosent.
    • La seconde opère de la même manière mais applique un filtrage passe-bas avant l'échantillonnage afin que la bande passante devienne compatible avec l'affichage. La sensibilité à l'initialisation est beaucoup plus faible.

    D'où peuvent venir les variations d'initialisation ? La première source (la plus fiable en la matière ) est le codeur. Le fait que le programme semble souvent marcher ne dément en rien cela. Par exemple, la non initialisation est très souvent assez stable mais pas garantie. Fermer les autres applications ne suffit pas, les OS modernes font tourner de multiples services en tache de fond.

    Il y a aussi le fait que le morceau le plus long n'est peut être pas toujours le même (les copies d'écran semblent montrer des listes de tailles variables). Dans ce cas, l'algo simple qui sous échantillonne ne prendra pas les mêmes échantillons et les mêmes morceaux seront très peu comparables entre deux exécutions.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  12. #12
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonsoir,

    merci aux deux derniers intervenants, qui n'ont pas dû tout lire et je les comprends, c'est assez indigeste.

    Alors ils ont dû zapper ce point, de mon dernier post :
    Citation Envoyé par Jipété Voir le message
    J'ai tout revu de fond en comble, j'ai viré des trucs en double, des trucs inutiles, on dirait que ça tient la route, maintenant, alors je croise les doigts et je touche du bois,
    Que dire d'autre ? Que ça continue à fonctionner correctement, et que je vous souhaite à tous une excellente année et de bons codes sans bugs,

    Je devrais peut-être cliquer sur
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  13. #13
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 334
    Points : 4 156
    Points
    4 156
    Par défaut L'informatique est un jeu de hasard
    Bonjour,

    Donc nous sommes passés de "je ne sais pas pourquoi ça ne marche pas" à "ça marche et je ne sais pas pourquoi".

    Est-ce un progrès ?

    Je conseille de faire brûler de l'encens avant tout run

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  14. #14
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Je conseille de faire brûler de l'encens avant tout run
    sans oublier de sacrifier un poulet à la pleine lune, après avoir tourné sept fois autour d'une bougie dans le sens inverse des aiguilles d'une montre, hé oui, car l'informatique, contrairement à ce que je croyais, n'est pas une science exacte ou plutôt, a une fiabilité aléatoire.
    Exemple : ça fait 8 ans maintenant que je vis avec une machine qui fait tourner un vieux Debian 7 / 32 bits solid as a rock, qui me sert à un tas de trucs dont entre autres des machines virtuelles dont une, sous XP sp2, me sert quasi exclusivement, pour ma messagerie avec Outlook Express, en remplacement de la machine physique qui était sous w2k, mais passage à Linux oblige, pour de sordides raisons d'imprimante plus maintenue sous Seven (et comme elle aussi fonctionne parfaitement, pas de raison de la balancer), tous mes progs Windows sont maintenant en machines virtuelles.

    Donc tous les jours ou presque je démarre le host puis la vm, j'ai ma messagerie et je vis ma vie comme tout le monde.

    Et la semaine dernière pour la première fois en 8 ans (autant dire que je n'avais jamais envisagé ce phénomène, vous pensez, au bout de 8 ans !), le démarrage de la machine virtuelle a planté.
    Je l'ai éteinte proprement, je l'ai redémarrée et elle est repartie, toujours vaillante.
    Aucune explication, aucune bonne raison, c'est ainsi.

    Bonne journée,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #15
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Il n'y a aucun hasard dans l'informatique, c'est une science déterministe.
    Si il y a quelque chose qu'on ne comprend pas, c'est parce que le nombre de paramètres est beaucoup trop élevé pour l'intelligence humaine.
    Si la VM ne s'est pas lancée, c'est qu'il y avait une bonne raison, mais que ni le programme d'émulation, ni l'OS, ni le je-ne-sais-quoi ne l'a expliqué en l'écrivant dans une log ou autre...

    Mais rassurez-vous, ça arrive à tout le monde, et quand "ça plante", je réessaie de relancer en priant... Certainement par fainéantise de devoir rechercher la cause du problème.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  16. #16
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 334
    Points : 4 156
    Points
    4 156
    Par défaut Infauxmatique
    Bonjour M.Db,

    Citation Envoyé par M.Dlb Voir le message
    Il n'y a aucun hasard dans l'informatique, c'est une science déterministe...
    Je suis d'accord à 99,9%. Reste le 0.1% (ou le 0.01% ). L'informatique, au sens large, matériel inclus, n'est pas aussi déterministe que souhaitée. Sinon pourquoi les machines critiques utiliseraient des mémoires avec bit de parité et correction d'erreur à la volée ? La sensibilité à certains rayonnements (particules ionisantes), à des pics parasites, etc. sont autant de sources d'aléas. Heureusement, c'est rare. Bien plus rare que les erreurs humaines. Mais cela existe. Un peu.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  17. #17
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour à tous.
    Je te donne ma méthode (qui vaut ce qu'elle vaut )
    Si ton code est trop compliqué et qu'il ne fonctionne pas correctement, la seule solution est de le couper en morceau pour le traiter par étape.
    Tu peux donc mémoriser des états intermédiaires pour les comparer entre 2 run de ton appli. Ainsi tu pourra savoir à quel stade tu as de l'instabilité.*
    Ca peut être un peu laborieux mais ça t'évite de chercher une aiguille dans la botte de foin !

    Cela dit, je plussois sur la première réponse : La majorité de comportement "aléatoire" est dû à une mauvaise initialisation de variables.
    Tu peux aussi avoir des problèmes d'arrondi de calcul (ou de débordement de capacité) , qui peuvent générer des effets de bord...
    Bon courage et belle journée...
    Windows 10 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  18. #18
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    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.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ 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