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

C++Builder Discussion :

Debugger - problème avec les "double"


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut Debugger - problème avec les "double"
    Bonjour,

    J'ai de gros problèmes d'incohérence avec le debugger Borland C++ Builder.

    Explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double fAbstract = monObjet.getAbstract();
    if( fAbstract > 0 )
       monTraitement();
    la variable fAbstract a la valeur 2519691 par exemple, et le débugger refuse catégoriquement de rentrer dans la fonction monTraitement();
    J'arrive à corriger le problème, en supprimant le .obj de mon fichier et en supprimant le fichier .tds
    Cela me fait perdre beaucoup de temps dans mon développement puisque, lorsque je teste mes développements je tombe sur des problèmes qui n'existent pas puisque c'est le débugger qui part dans les choux.

    Je travaille dans un très gros projet, pour info le tds fait un peu plus de 52Mo. Le débbuger a été patché pour qu'il accepte une telle taille de projet...

    Néanmoins quand je fait de petites modifs dans certains fichier, je tombe sur des erreurs étranges comme je viens de l'expliquer...

    Quelqu'un peut il m'aiguiller?

    Si besoin de plus d'info, me le demander.... Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Essaie:

    ou la grosse artillerie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((double) fAbstract > (double) 0.0)
    pour éviter la conversion en int du compilateur

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut
    En fait cela n'a rien à voir, ce n'est pas un effet de bord.

    J'ai une valeur bien suppérieure à 0, c'est vraiment le débugger à mon sens qui lache...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Pourquoi parles tu uniquement du debugger ? En dehors de l'exécution sous debugger, l'application (et notamment le test que tu donnes en exemple) fonctionne t'elle ?

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut
    Bonjour,

    j'ai le même problème avec BCB 5, dans un gros projet également.

    cependant, changer le "0" en "(double)0.0" n'a rien changé au problème, et en ce qui me concerne ma solution depuis un moment déjà c'est le reboot... donc pas très pratique non plus...

    que dire de plus sinon que ce n'est pas systématique, ce qui est d'autant plus étrange (et malheureusement "acceptable" vu qu'un reboot règle la plupart du temps le problème).

    J'ai essayé, il y a de ca un moment, de chercher un peu partout si il y avait des limites connues de BCB ( en terme de tailles de fichiers de traitements et autre ) mais je n'ai rien trouvé...

    voili voilou, en espérant que ces soucis inspirent quelqu'un...

    A bientot.
    nasplit.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut
    josse95, si je parle du debugger c'est parce que je vois bien la valeur en mode débugger, mais sans le débugger je te confirme que ça ne change rien, un log me donne la valeur de la variable fAbstract.

    Le code que je donne est vraiment simplissiste je vous l'accorde, mais c'est pour bien vous montrer qu'il s'agit d'un problème avec le double et bcb.

    J'ai entendu dire que l'on arrivait peut être à la limite de bcb avec un projet d'une telle taille ? oui - non?
    Je me corrige, quand je disais avant que l'on avait patché le débugger j'ai dit une bétise, c'est le ilink que l'on a patché justement à cause de la taille du fichier .tds qui est immense...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double fAbstract = monObjet.getAbstract();
    if ( fAbstract <= 0.0 ) {
    }
    else {
      monTraitement();
    }
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ( fAbstract > 0.000000001 ) {
      monTraitement();
    }

Discussions similaires

  1. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  2. Réponses: 15
    Dernier message: 21/02/2007, 17h29
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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