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

EDI Delphi Discussion :

Debug : Empêcher Delphi de s'arrêter dans les unités "Systèmes" sur Exception


Sujet :

EDI Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut Debug : Empêcher Delphi de s'arrêter dans les unités "Systèmes" sur Exception
    Bonjour à tous,

    J'utilise actuellement Delphi XE3 et il y a quelque chose qui m'agace au plus au point lorsque je débogue mes programmes.
    Sur une exception, Delphi me retourne une "Notification des exceptions du débogueur" puis si je clique sur le bouton Arrêter, il s'arrête dans les unités systèmes (system.pas, Data.DB.pas, etc...)
    Je voudrais qu'il s'arrête sur l'instruction ayant provoqué l'erreur dans mon code (comme cela le faisait dans les anciennes version de Delphi je crois ?)

    Dans 99.999% des cas l'erreur vient de mon code. Si je prends le cas typique d'une requête SQL avec un champ mal orthographié par exemple, il faut que je fasse défiler longuement via F8 le code des unités systèmes avant de retourner dans la portion de mon code responsable du problème. Si cela peut être utile dans certains cas complexes, rares et difficiles à comprendre, je trouve que c'est inutile dans 95% des cas.

    Savez-vous comment désactiver cette fonctionnalité (même temporairement) ou bien comment retourner tout de suite dans le code utilisateur sans faire défiler les lignes des unités "systèmes" ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Tu peux voir simplement ton code en regardant la pile d'appel (voir-> fenêtres de débogage->pile d'appel), ta fonction est la plus haut qui aie le nom d'une de tes unités.
    Si vraiment tu ne veux plus descendre dans ces unités (bien pratique dans certains cas pour avoir plus de précision sur ce que tu as mal fait), je pense que passer projets->options->compilation->utiliser les .dcus de débogage à false fera que tu ne les verra plus/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut
    Un grand merci à toi guillemouze, tu es un champion de l'IDE
    J'ai maintenant tout ce que je veux.


  4. #4
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    De rien

    Autre petit truc qui pourra surement t'aider : Maj+F8 (si tu as les touches standard, sinon tu le trouvera dans Executer->Executer jusqu'au retour).
    Qu'est ce que ca fait ? et bien tout simplement ça remonte jusqu’à l'appel de la fonction en cours.

    Petit exemple (en prenant F7 = pas à pas approfondi) :
    Tu es dans une fonction Button1Click, tu fais F7 à la ligne
    Tu te retrouve dans le code de la procedure Dialogs.ShowMessage
    un petit Maj+F8, et tu te retrouve à la ligne suivante dans Button1Click

    Petite précision dans un cas un peu plus complexe, imaginons que ton curseur soit sur la ligne 142
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(IntToStr(5));
    Un coup de F7, et tu te retrouve dans le code de la fonction IntToStr.
    MAJ+F8, et tu reviens sur la même ligne 142.
    Un coup de F7, et maintenant tu es dans le code de ShowMessage

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

Discussions similaires

  1. Débuter dans les monde des systèmes embarqués
    Par NoobProg dans le forum Raspberry Pi
    Réponses: 8
    Dernier message: 24/04/2014, 11h09
  2. Réponses: 0
    Dernier message: 02/07/2009, 22h23
  3. Comment empêcher le debuger d'entrer dans une unité ?
    Par Alex Laforest dans le forum EDI
    Réponses: 5
    Dernier message: 22/07/2005, 22h14

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