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 :

Points d'arrêt inopérants si désactivés puis réactivés [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 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut Points d'arrêt inopérants si désactivés puis réactivés
    Bonsoir,

    il m'en arrive une bien bonne...

    Je voulais revenir sur un vieux projet pour lequel j'avais en son temps désactivé les options de débogage (ça ramène le binaire de 22 à 4 Mo, quand il y en a beaucoup c'est intéressant pour les sauvegardes), et je les ai donc réactivées, et là, surprise, ce n'est pas pris en compte.
    J'ai vérifié avec un autre projet, idem

    J'ai scrupuleusement contrôlé (même si je commence à les connaître par cœur) les options qu'on trouve là :
    Citation Envoyé par Ph. B. Voir le message
    Par contre, il faut que le code que vous voulez inspecter soit compilé avec les options idoines.
    Il y a un article sur le wiki à ce sujet : Lazarus debugger setup
    mais bernique, je peux poser autant de points d'arrêt que je veux, ils ne sont pas respectés !
    Pratique pour essayer de comprendre ce qui se passe mal, parfois...

    Alors bien sûr, créer un nouveau projet ex-nihilo fait disparaître le souci, mais je ne me vois pas recréer tous les projets pour lesquels j'ai désactivé les options.
    J'ai jeté un œil aux fichiers .lrs, .lpi, .lpr et n'ai rien trouvé d'intéressant dedans.

    Si quelqu'un a une idée, je la lirai avec grand plaisir,
    merci d'avance,

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    hello Jipété,
    tu peux essayer l'option -Xe dans Options pour le projet/Options du compilateur/Autres et mettre -Xe dans le champ Options personnalisées
    sinon regarde ici

    Ami calmant, J.P ( pas T)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut, J.P,

    et merci de te pencher là-dessus.
    Citation Envoyé par jurassic pork Voir le message
    hello Jipété,
    tu peux essayer l'option -Xe dans Options pour le projet/Options du compilateur/Autres et mettre -Xe dans le champ Options personnalisées
    sinon regarde ici

    Ami calmant, J.P ( pas T)
    Malheureusement, tes pistes n'ont aucun effet...
    J'en ai trouvé une autre, pas mieux

    Et le pire, c'est que rien n'ayant changé avec ces essais et le vieux projet, je constate avec stupéfaction que ces manipulations, tout en étant ramené l'IDE à l'état initial, m'ont cassé le projet de test rapide créé hier et pour lequel les points d'arrêt fonctionnaient...

    Il me faut encore créer un nouveau projet pour retrouver la fonctionnalité.

    J'ai tout à fait l'impression d'être un ouvrier qui aurait un marteau en caoutchouc et des tournevis en chewing-gum... Si vous saviez comme j'en ai marre... Et le temps que je perds avec ces c0nn3r1es...

    - - -

    J'ai donc recréé un nouveau projet, et juste mis ça pour tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ShowMessage('test');
    end;
    Le breakpoint sur la ligne du ShowMessage et ça le fait, ouf !
    Je rajoute l'unité complémentaire de mon projet d'hier, F9, ça continue à bien fonctionner.
    Je rajoute sur la fiche le TMemo et le TImage dont je vais avoir besoin, F9, impec.
    Je rajoute le code qui va bien, qui est dans FormShow, F9 et là, patatras, ça ne s'arrête plus !
    Mais c'est quoi ce délire !?
    Pour ne pas mourir idiot, je commente tout le code dans la procédure FormShow, F9 et là ça fonctionne et stupéfaction (en jouant avec le code commenté et donc les changements de couleurs ça saute enfin aux yeux), la première ligne de FormShow c'est... Show !
    Et ça, ça doit pas lui plaire du tout, à l'ensemble binaire-débogueur

    Il aura suffi de supprimer ce Show (sans doute un reste du Show qu'on met dans le FormCreate si on veut écrire dans un mémo au lancement du prog) pour que je retrouve la fonctionnalité.
    Mais juste pour ce projet !
    Car le projet d'hier soir avec juste le ShowMessage et qui fonctionnait bien hier et qui ne fonctionne plus depuis les essais des options continue à ne plus fonctionner, or il a juste le FormCreate indiqué plus haut.

    Tournevis en chewing-gum, j'vous dis...

    AJOUT : et le pire, c'est qu'à partir du moment où je perds la possibilité d'arrêt, je ne la retrouve pas, genre le coup du Show ci-dessus et sa suppression qui réactive la fonctionnalité, le passage à l'autre projet où elle est perdue puis le retour dans le projet "Show" = fonctionnalité perdue ! Même après arrêt-redémarrage de l'EDI

    Marteau en caoutchouc, vraiment !

    - - -
    EDIT : step-by-step parce que ça a l'air plus compliqué :
    menu projet / nouveau projet / application
    créer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.FormShow(Sender: TObject);
    begin
      ShowMessage('test');
    end;
    Breakpoint sur la ligne du ShowMessage, F9 = ok

    enregistrement dans un nouveau dossier

    Ajout de l'autre unité et F9 = ok

    Ajout TMemo et TImage et du uses vers l'autre unité, F9 = ok

    Ajout du reste du code (sans le "show", lol !) sous le ShowMessage dans FormShow, F9 = cassé

    Mise en commentaire de tout le code rajouté, donc il ne reste plus que le ShowMessage, donc ça ressemble au début de la manip, F9 = cassé.

    À partir de là, je n'ai plus d'idées, je ne sais plus quoi faire

    Pour résumer l'ordre des opérations :
    1-ShowMessage avec breakpoint dessus = ok
    2-ShowMessage commenté et breakpoint sur ligne dessous = cassé
    Nom : breakpoint_kc.png
Affichages : 503
Taille : 5,2 Ko
    3-ShowMessage décommenté et remise breakpoint dessus = cassé et à partir de là c'est mort...

    IDE (v 1.4.0) en carton, moi j'dis...

  4. #4
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Salut je viens de testé ton petit exemple avec le showmessage j'ai mis le breakpoint dessus F9 et la paf Avast me fait planter DBG et ou ppc386 en me signalement un virus.
    J'enregistre le projet et F9 Lazarus me dis qu'il ne trouve pas l'executable. Du coup j'enleve le breakpoint puis nettoyer et compiler c'est Ok.
    Je remet le breakpoint F9 et c'est OK

    Du coup essayes peut-être de nettoyer et recompiler pour voir
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Yop !
    Citation Envoyé par BeanzMaster Voir le message
    Salut je viens de testé ton petit exemple avec le showmessage j'ai mis le breakpoint dessus F9 et la paf Avast me fait planter DBG et ou ppc386 en me signalement un virus.
    J'enregistre le projet et F9 Lazarus me dis qu'il ne trouve pas l'executable. Du coup j'enleve le breakpoint puis nettoyer et compiler c'est Ok.
    Je remet le breakpoint F9 et c'est OK

    Du coup essayes peut-être de nettoyer et recompiler pour voir
    Merci de te préoccuper de mon souci.

    Cette fenêtre d'options ? : Nom : nettoyer.png
Affichages : 548
Taille : 41,1 Ko
    Une chose me chagrine : je n'ai pas trop envie que ça me supprime tous ces fichiers système (LCL, LCLBase, LazUtils et FCL), donc je décoche les 2 dernières cases à cocher, il ne reste plus que le "Dossier de sortie du projet" et là, tu te doutes bien que ça ne change absolument rien au problème.

  6. #6
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Dans mon cas j'ai juste décocher la dernière option. Sinon fait un backup avant de lazarus au cas ou
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Dans mon cas j'ai juste décocher la dernière option.
    Au niveau des fichiers supprimés, le résultat sera le même que si je décoche les deux dernières options, si les infos affichées dans le Treeview dessous sont correctes. Donc je ne prends pas ce risque, sachant qu'il y a au moins un (peut-être plus) fichier qui a été modifié suite à discussion ici il y a un an ou deux.

    Non, je pense qu'un truc s'est cassé mais lequel, c'est impossible à savoir... Ça sera peut-être l'occasion de passer à la 1.4.4 / fpc 2.6.4, mais l'emmerdant, comme à chaque mise à jour, c'est les composants installés, qu'il faut recompiler/réinstaller, sans en oublier, en espérant que ça se passera bien, etc.
    C'est toujours une misère, alors j'hésite...

  8. #8
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Je suis très curieux donc je viens de faire une petite recherche j'ai trouvé ça dans la doc de FPC, je sais pas si ça t'aidera :

    For breakpoints with negative numbers Please see: http://forum.lazarus.freepascal.org/...html#msg121818
    You may also want to try:
    Lazarus 1.2.2 and before
    go to the debugger options and in the field "debugger_startup_options" enter:
    --eval-command="set auto-solib-add off"
    Lazarus 1.2.4 and higher
    go to the debugger options and set the field "DisableLoadSymbolsForLibraries" to "True"
    This can only be used, if you do not debug within libraries (if you have not written your own lib)
    For breakpoints with positive numbers This may happen due to incorrect Debugger Setup. Ensure smart linking is disabled. It usually means that the breakpoint is in a procedure that is not called, and not included in your exe.
    On Windows, if it happens despite correct setup, then add -Xe (external linker) to the custom options.
    Sinon j'ai lu une piste. Essayes de voir dans le fichier lpi.

    Donc je ne prends pas ce risque, sachant qu'il y a au moins un (peut-être plus) fichier qui a été modifié suite à discussion ici il y a un an ou deux.
    Comment ça ? c'est parce que tu as fais des modifications dans la LCL ou fichiers de bases ?

    Le problème que je vois surtout c'est dans les projets et les fichiers lfm si des propriétés ou leur nom dans les composants ont été ajoutés/enlevés ou modifiés. Cela provoquera des erreurs. J'ai eu ce problème avec mon paquet de composants, j'ai du édité les fichiers lfm pour corriger.


    Une mise à jour de l'IDE pourrait être la solution. Mais comme tu le dis faut tout recompiler. Une astuce importes tous tes paquets compiles les 1 par 1 puis seulement après tu reconstruit L'IDE. C'est sur si tu en a + de 10 ca va être galère
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut !


    Tu me sauves la vie !

    Incroyable car ta solution n'a aucun rapport avec les options que j'ai pu trafiquer, donc mystère et boule de gomme mais il m'a suffi de passer le machin à True et hop !, bingo !
    Citation Envoyé par BeanzMaster Voir le message
    Je suis très curieux donc je viens de faire une petite recherche j'ai trouvé ça dans la doc de FPC, je sais pas si ça t'aidera :
    Lazarus 1.2.4 and higher
    go to the debugger options and set the field "DisableLoadSymbolsForLibraries" to "True"
    This can only be used, if you do not debug within libraries (if you have not written your own lib)
    Et je précise, au cas où un jour quelqu'un d'autre tomberait dans ce piège, que ça concerne les options globales du debugger (menu Outils / Options / Débogueur / Général) et pas les options de débogage du projet en cours (menu Projet / Options du projet / Débogage).
    Le truc curieux, c'est que je n'ai jamais touché cette option, donc je crains que ça ne masque une blagounette planquée dans un coin bien sombre et mystérieux, mais bon, ça faisait quand même deux plombes que je farfouillais dans les forums de FreePascal sans rien trouver.
    Bien joué !

    PS : moi aussi je suis curieux, tu parles de la doc de fpc, peux-tu préciser où, exactement ?

    Citation Envoyé par BeanzMaster Voir le message
    Je suis très curieux donc je viens de faire une petite recherche j'ai trouvé ça dans la doc de FPC, je sais pas si ça t'aidera :
    Lazarus 1.2.4 and higher
    For breakpoints with positive numbers This may happen due to incorrect Debugger Setup. Ensure smart linking is disabled. It usually means that the breakpoint is in a procedure that is not called, and not included in your exe.
    J'ai trouvé un truc que peut-être peu de gens connaissent : pour voir ces fameux nombres positifs (il en existe aussi des négatifs), menu Voir / Fenêtres de débogage / Sortie du débogueur.
    Ça peut être utile.

    Citation Envoyé par BeanzMaster Voir le message
    Le problème que je vois surtout c'est dans les projets et les fichiers lfm si des propriétés ou leur nom dans les composants ont été ajoutés/enlevés ou modifiés. Cela provoquera des erreurs. J'ai eu ce problème avec mon paquet de composants, j'ai du édité les fichiers lfm pour corriger.
    Oui, j'avais remarqué aussi des susceptibilités de l'IDE vis-à-vis de ce genre de bidouilles...

    Citation Envoyé par BeanzMaster Voir le message
    Une mise à jour de l'IDE pourrait être la solution. Mais comme tu le dis faut tout recompiler. Une astuce importes tous tes paquets compiles les 1 par 1 puis seulement après tu reconstruit L'IDE. C'est sur si tu en a + de 10 ca va être galère
    Ah ça, c'est le truc qui me terrorise !
    J'en ai déjà parlé lorsqu'on voit passer les infos concernant une nouvelle version.
    Le problème (il me semble) c'est que les développeurs de l'IDE gèrent leur bébé comme si à chaque fois on l'installait from scratch sans aucun composant rajouté, ce qui est loin de la vraie vie.

    Il devrait y avoir systématiquement une version complète from scratch et une version pour mise à jour depuis la version précédente, qui ne casse rien et se contente de remplacer les fichiers ayant changé : ça serait quand même plus sympathique.
    Gilles V., si tu passes par là, fais remonter...

    Encore merci pour la solution, excellent week-end, je vais pouvoir cliquer sur ,

  10. #10
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    PS : moi aussi je suis curieux, tu parles de la doc de fpc, peux-tu préciser où, exactement ?
    http://wiki.freepascal.org/GDB_Debugger_Tips

    De rien A+ bon week-end
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Merci, mais du coup ça confirme ce que je disais précédemment, à savoir que si cette solution fonctionne (passer l'option à True), d'après ton lien ça s'applique à Windows et moi je suis sous Linux, et donc cette solution masque autre chose...
    Mais bon, on ne va pas faire le difficile, ça fonctionne, c'est le principal

    EDIT : 2 lignes au dessus j'ai écrit que d'après le lien ça s'appliquait à Windows. Ben d'après le même lien mais un peu plus haut dans la page ça s'applique à tous les environnements mais j'aurais dû avoir un message... Vraiment pas clair, cette histoire...

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

Discussions similaires

  1. Désactiver puis réactiver le filtre automatique
    Par PierrotMfff dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/03/2015, 13h46
  2. Désactiver puis réactiver le filtre automatique
    Par ievtohs dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2011, 19h12
  3. [Plugi][phpeclipse] point d'arrêt pas pris en compte
    Par damjal dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/11/2005, 23h58
  4. [vb.NET][xmlTextReader] influence d'1 point d'arrêt
    Par Rom_1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/07/2005, 11h06
  5. possible de sauvegarder ses points d'arrêts ?
    Par Merfolk dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/09/2004, 11h23

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