Ce sujet est résolu.
1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
valaquarus | #1 Posté le 15/2/2019 à 21:46:42 | ||||
-- Unus Ex Altera -- | Bonsoir à tous, je viens de découvrir un bug gênant dans mon petit prog qui provoque une segmentation fault comme dit dans le titre. Je test une connexion avec un serveur pop dans une fonction qui me renvoie une valeur booléenne. Si la connexion est bonne pas de souci le programme continue et j'accède à toutes les autres parties de celui-ci par contre si la connexion n'est pas bonne, compte faux ou inexistant alors tant que je reste dans l'onglet du test tout va bien le programme continu mais dès que je veux aller sur un autre onglet le programme s'arrête immédiatement et l'IDE m'envoie une erreur de segmentation. Voici le bout de code de la fonction :
Je me doute que le problème vient de la connexion qui ne se fait pas mais delà à mettre les pointeurs de la mémoire en l'air je ne comprends pas. Philippe Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
valaquarus | #2 Posté le 16/2/2019 à 18:11:51 | ||||
-- Unus Ex Altera -- | Bonsoir, je continue de vous raconter (ma vie). en fait ce n'est pas la connexion qui provoque cette erreur de segmentation mais les fioritures sons que j'ai mis partout (ça me plaît) et il y en a un déclenchement de son qui provoque cette erreur, en cliquant sur un des onglet d'un tabstrip. Bon j'ai procédé en ordre suite à la demande de la mailing list qui voulait un petit programme de moins de 256 ko pour tester cette erreur, donc en éliminant petit à petit les éléments "inutiles", en commentant une ligne après l'autre et en testant à la suite je suis tombé sur celle qui provoquait l'erreur. Ceci dit je n'ai toujours pas compris en quoi il y a "une perte de d'adressage mémoire" de la part des pointeurs à ce moment là mais un comment de la ligne et hop plus d'erreur. Voici le bout de code incriminé :
La ligne commentée est celle qui provoquait la dite erreur. Maitenant, j'attends avec impatience les commentaires des pro de la mailing list qui ont bien voulu se pencher sur le berceau de petit programme. Philippe Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
spheris | #3 Posté le 16/2/2019 à 21:19:00 | ||||
Salut, Deux questions: A) qui a-t-il dans Module1.shade pour que cela plante? B) tu écris CASE 0 TO 4, cela implique donc qu'il y a 5 tab dans ton tabstrip. Pourquoi alors tester la condition IF tbstp.Count > 1 ? puisque tu sait qu'il y a 5 tab... ;) | |||||
Flachy Joe | #4 Posté le 17/2/2019 à 12:06:05 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | @spheris A) +1 pour savoir ce qu'il y a dans Module1.shade B) tu confonds TabStrip1 et tbstp Flachy Joe | ||||
valaquarus | #5 Posté le 17/2/2019 à 15:14:21 | ||||
-- Unus Ex Altera -- | Salut, Bonjour Sphéris, module1.shade est juste un son
Il ya effectivement 5 tab dans tabstrip1 et dans le premier tab il y a un autre tabstrip : tbstp dont l'index zéro est juste pour afficher un message, comme mentionné par Flachy Joe. Ce n'est pas le son qui plante mais l'appel à ce son par le tabstrip1 si je décommente la ligne suivante :
Et je peux assurer qu'il suffit de remettre cette ligne pour que ça plante radicalement. Philippe Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
valaquarus | #6 Posté le 17/2/2019 à 17:23:20 | ||||
-- Unus Ex Altera -- | La suite, juste pour rire :
Et ce n'est pas parce que c'est dans le test Case que ça plante c'est juste le Click() versus MouseDown() qui fait la différence. c'est de plus en plus obscure pour moi. Philippe Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
1 |