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 :

[4.6/Linux] Pas à pas capricieux [Lazarus]


Sujet :

Lazarus Pascal

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 274
    Par défaut [4.6/Linux] Pas à pas capricieux
    Bonjour,

    Mon Lazarus 4.6 sous Linux Debian 12 refuse de faire du pas à pas dans un bête programme de test !
    Pourquoi ?
    Et comment corriger ce caprice ?

    Les choses se passent là (FLB c'est FileListBox) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TForm1.tvSelectionChanged(Sender: TObject); // tv c'est un TreeView
    var
      i: integer;
      aFonte: string;
    begin
      CurrentFolder := workdir; 
      ShowMessage('tvselectionChanged: '+CurrentFolder); // OK 
      FLB.Directory := CurrentFolder;
      if FLB.Items.Count > 0 then 
        for i := 0 to FLB.Items.Count-1 do begin
          aFonte := FindTrueTypeFontName(CurrentFolder + FLB.Items[i]);// FindTrueTypeFontName vient de l'unité Fontinfos.pas
          // https://forum.lazarus.freepascal.org/index.php/topic,37329.msg250576.html;
          NextTop := AddaMemoToSBox(Compteur2Memos+i, aFonte, 'fonts');
        end;
    end;
    Vous voyez le surlignage rouge, dans l'image ci-dessous ? Hé bien, quand je fais F9, cet animal ne s'arrête pas là mais continue jusqu'à la fin de la procédure.
    Nom : image_nopause.png
Affichages : 183
Taille : 43,6 Ko


    Merci pour vos retours.
    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
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    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 794
    Par défaut
    Bonjour,

    Selon l'image, il semble bien s'arrêter normalement. Pour continuer en pas à pas, il faut utiliser F7 ou F8. L'une entre en pas à pas approfondi c'est-à-dire dans les fonctions appelées (utile, mais long) et l'autre passe en pas à pas les instructions et les appels de fonctions sans y entrer.

    F9 relance le déroulement normal jusqu'à un éventuel point d'arrêt.

    Mais peut-être que je n'ai pas bien compris le problème ?

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

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

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

    et merci de t'être penché sur ma misère.

    Alors je fais comme ça : je clique dans la marge gauche pour mettre en place un point d'arrêt à la hauteur de la ligne for i := ... et j'appuie sur F9, ça m'exécute toute la procédure sans aucun arrêt alors que i devrait s'arrêter à i = 0 puis i = 1 puis i = 2 et i = 3. (il n'y a que 4 objets dans cette boucle).

    Je ferme le programme, je le relance, j'appuie sur F8 et là je me prends un magnifique message "Assembleur" :
    Nom : Capturécran.png
Affichages : 78
Taille : 123,1 Ko

    Dans ce morceau de code, je vois bien plein de lignes avec dl_catch_error+une-valeur mais je ne sais pas comment gérer ça, d'où mon post.
    La surbrillance bleue de la ligne vient de l'outil, pas de moi.

    Une idée pour continuer ?
    Merci,
    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 Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    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 794
    Par défaut
    Bonjour,

    Si on fait F8 alors que le focus est sur la vue de l'assembleur, le pas à pas s'applique au code assembleur et non au code source.

    Une tentative d'explication : le code assembleur ne montre pas le code source qui lui est associé, l'option n'est peut-être pas activée (pourtant par défaut). Auquel cas le suivi pas à pas ne peut se faire que sur le code assembleur. Si c'est le problème, il faut valider l'option "générer les informations de débogage (ralentit et augmente la taille de l'exécutable)".

    Autre idée, il est possible (mais pas sûr) que le niveau 1 d'optimisation (compatible avec le débogage) déplie la boucle qui n'a que 4 itérations. Il s'ensuit que suivre les itérations de celle-ci n'a plus de sens.

    Les lignes qui brouillent la lecture servent à opérer les différents contrôles de débogage (range, pointeur valide, div/0, etc.). La plupart de ces contrôles disparaîtra en mode "release". Je présume que l'activation du suivi de variable n'est actuellement pas possible ?

    Ce ne sont que des pistes.

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 274
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Autre idée, il est possible (mais pas sûr) que le niveau 1 d'optimisation (compatible avec le débogage) déplie la boucle qui n'a que 4 itérations. Il s'ensuit que suivre les itérations de celle-ci n'a plus de sens.
    Je suis en niveau 0.

    Citation Envoyé par Guesset Voir le message
    Je présume que l'activation du suivi de variable n'est actuellement pas possible ?
    Oh, je ne sais pas que quoi tu parles, là !
    Enfin, si, je comprends les mots, mais je ne vois pas comment m'en servir (j'ai passé l'âge !)

    Merci pour tes pistes, ça m'a fait farfouiller dans les options de la compilation, et je me suis rendu compte que lors de la configuration de départ j'avais oublié d'activer des trucs dans Options du compilateur / Débogage, genre activer "Générer les informations de débogage" comme tu l'as suggéré.

    Mais faut dire aussi qu'il y en a tellement et un peu partout qu'on s'y perd...

    Merci pour ta piste.
    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
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 474
    Par défaut
    Bonjour,

    Citation Envoyé par Jipété Voir le message
    , je ne sais pas que quoi tu parles, là !
    Menu 'Voir', Sous menu 'Fenêtres de débogage', Sous-sous menu 'Points de suivi' (Ou les touches magiques : Ctrl+Alt+W) (au moins chez moi qui n'ai pas modifié les touches).
    Pour ajouter une variable dans cette fenêtre : Ctrl F5 ou clic droit sur ta variable Menu 'Déboguer' sous menu 'Ajouter un point de suivi'.

    Cordialement

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 274
    Par défaut
    Citation Envoyé par acaumes Voir le message
    Pour ajouter une variable dans cette fenêtre : Ctrl F5 ou clic droit sur ta variable Menu 'Déboguer' sous menu 'Ajouter un point de suivi'.
    Bien noté, merci.
    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. [PC portable] Recherche un netbook sous Linux (pas d'Asus!)
    Par Mr_Exal dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 22/11/2012, 11h24
  2. va_list problème sous linux, pas sous windows
    Par gigiskhan dans le forum C
    Réponses: 11
    Dernier message: 02/10/2012, 17h51
  3. [GMP]Programme correct sur Linux, pas sur Windows
    Par FoX_*D i E* dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 22/01/2010, 17h26
  4. Le C sous Linux : pas d'execution
    Par adrien357 dans le forum Linux
    Réponses: 3
    Dernier message: 29/06/2006, 13h04

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