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 :

Problème avec les exceptions [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 146
    Points
    146
    Par défaut Problème avec les exceptions
    Avec Lazarus 1.4.4 et 1.2.6 sous Windows 7 64 bits et cible 32 bits. Un problème différent existe sous Kubuntu.

    J'ai isolé le code qui cause problème. Il suffit de placer un seul bouton sur une TForm avec ce code qui de manière délibérée va diviser par 0.

    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
    16
    17
    18
    19
    20
    21
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      i,j,k : integer;
     
    begin
        try
     
           j:=3;
           k:=0;
           i:= j div k;
           ShowMessage(IntToStr(i));
     
     
        Except
          on E :Exception do
            ShowMessage('Exception '+E.ClassName+' '+E.Message);
     
        end;
    end;
    Si on exécute le fichier exécutable en en cliquant deux fois dessus, il fonctionne normalement en rapportant un EDivByZero dans le dernier ShowMessage. Le problème est quand on exécute dans l'IDE, il rapporte deux fois un message d'erreur qui indique le contenu de la ligne de code, i:= j div k mais si on essaie d'aller plus loin, l’exécutable plante et Windows se met à la recherche d'une solution.

    Sous Kubuntu, le logiciel s’exécute correctement dans l'IDE mais il indique une erreur 207, Invalid floating point operation ce qui est incompréhensible par ce que ce code n'utilise que des nombres entiers. L’exception est EInvalidOp Invalid floating point operation au lieu de EDivByZero ce qui est incompréhensible. On ne peut pas écrire une fois et compiler partout si les exceptions ne sont pas nommées de manière consistante.

    J'ai certainement raté quelque chose mais quoi?

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 146
    Points
    146
    Par défaut
    J'avais raté ceci http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips . Avec la version 64 bits, il arrive que cela gèle avec les exceptions.

    TimeOuts (64 Bit only)

    It appears that certain commands are not correctly (or incompletely) processed by gdb 6.3.50. Normally GDB finishes each command with a "<gdb>" prompt for the next command. But the version provided by apple sometimes fails to do this. In this case the IDE will have to use a timeout to avoid waiting forever.

    This has been observed with:

    Certain Watch expressions (at least if the watched variable was not available in the current selected function)
    Handling an Exception
    Je viens de télécharger Lazarus 1.6 en 32 bits et en 64 bits.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 146
    Points
    146
    Par défaut
    Avec une nouvelle installation fraiche de la version 32 bits, le problème est encore là mais avec Lazarus 1.6 64 bits, tout va bien.

  4. #4
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 858
    Points
    20 858
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Pierre le Grand Voir le message
    Avec une nouvelle installation fraiche de la version 32 bits, le problème est encore là mais avec Lazarus 1.6 64 bits, tout va bien.
    J'arrive après la bagarre, mais le problème vient bien du débogueur. J'ai même de jolis plantages aussi bien en 64 bits qu'en 32. Par conséquent, je suis intéressé par d'éventuelles trouvailles de ce genre...

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Citation Envoyé par gvasseur58 Voir le message
    je suis intéressé par d'éventuelles trouvailles de ce genre...
    Je ne pouvais presque jamais utiliser le débogueur depuis plusieurs versions de Lazarus/Linux et sous Ubuntu 14.04 en 64 bits.
    Depuis l'installation de Lazarus 1.6 tout semble fonctionner parfaitement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/08/2008, 11h00
  2. Problème avec les Exceptions
    Par CORTEZ dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/05/2008, 10h06
  3. Problème avec les exceptions
    Par shenron666 dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 11/10/2006, 12h53
  4. Problème avec les exceptions
    Par Mucho dans le forum wxWidgets
    Réponses: 3
    Dernier message: 04/10/2006, 17h10
  5. probléme avec les exceptions
    Par sofiane44 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 16h30

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