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

Contribuez Discussion :

Un FinProgramme() personnalisé


Sujet :

Contribuez

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 13
    Points
    13
    Par défaut Un FinProgramme() personnalisé
    Il s'agit de surcharger la fonction FinProgramme() de Windev.

    Le but du jeu est que le programme stoppe son exécution quand on est en mode débuggage et qu'il s'arrête pour de bon quand on est en mode exécutable. L'intérêt de stopper (et non d'arrêter) le programme en débuggage c'est de pouvoir reprendre la main pour remonter la pile des appels, vérifier le contenu des variables ... et donc débugger plus facilement en étant dans le contexte.

    Afficher systématiquemet la pile des appels lors d'un message de terminaison permet d'obtenir des informations complémentaire bien pratiques lors d'un crash en clientèle. Pour aller plus loin il serait également possible d'envoyer ce compte-rendu par email ou de le déposer sur un site.

    Cet exemple permet aussi d'illustrer la manière dont on peut surcharger les fonctions natives, notamment grace au préfixe WL.

    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
     
    PROCEDURE FinProgramme(*)
     
    i est un entier 
    cChaineMessage est une chaîne
     
    POUR  i = 1 _A_ MesParamètres..Occurrence<div style="margin-left:40px">
       cChaineMessage += MesParamètres[i] + RC</div>FIN
     
    Erreur(cChaineMessage + RC + "Pile des appels :" + RC + dbgInfo(dbgPile))	
     
    SI   EnModeTest() ALORS
       STOP
    SINON
       WL.FinProgramme()
    FIN

    http://conseilsetastuceswindev.webnode.fr

  2. #2
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    je ne comprends pas la différence avec l'affichage du debogueur?
    La pile me semble déjà affiché (voir capture)
    Et il est quand même plus simple de mettre des points d'arrêt avec le debogueurque de faire des appels à une méthode tout au long du code...
    septique donc sur ce coup là...
    Enfin septique en attendant un complément peut être.

    Images attachées Images attachées  

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Effectivement mettre des point d'arrêts permet de debugger.

    Mais imaginons le cas suivant :

    On code une boucle avec N itérations. A l'intérieur de chaque itération une petite usine à gaz remplie de SELON et de SI.

    On lance le traitement ... et après X tours dans la boucle ça s'arrête parce qu'on tombe sur un FinProgramme correspondant à un cas non géré.

    Alors le programme stoppe et vous permet ainsi d'avoir tout sous la main (pile, variables) en mode débuggage tout en étant dans le contexte.

    Pas la peine de mettre ou remettre des points d'arrêt partout.

    J'espère que mon explication vous convient.


    http://conseilsetastuceswindev.webnode.fr/

Discussions similaires

  1. [Preferences] Personnalisé sa javadoc
    Par popogendarme dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 21/01/2005, 14h45
  2. [VB.NET] Contrôle personnalisé dans une dll personnalisée
    Par c3b12 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/10/2004, 07h56
  3. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19
  4. [CR]Help numero page personnalisé
    Par juelo dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 09/01/2004, 16h59
  5. Réponses: 9
    Dernier message: 14/10/2003, 15h35

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