PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Le débogueur
  • Comment le faire ?
  • Lancer le débogueur
  • Remarque : Iconiser ou non l'éditeur lors du test
  • Utiliser le débogueur en 32 bits et 64 bits
  • Exécuter du code sous le débogueur
  • Configurer le mode d'arrêt du débogueur
  • Notes
  • Hiérarchie des traitements
  • Visualiser le contenu des variables
  • Expression à évaluer
  • Compte-rendu HFSQL et compte-rendu WLangage
  • Gestion des threads
  • Ignorer certaines fonctions lors du débugage en mode "Pas à pas"
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
L'exécution du projet pas à pas permet de lancer le débogueur au lancement de l'application. Cette solution permet de suivre méticuleusement le déroulement de l'application.
Principe du débogage : Le débogage d'une application consiste à :
  • vérifier le bon fonctionnement d'un traitement,
  • comprendre le fonctionnement d'un programme existant,
  • vérifier la valeur des variables,
  • vérifier le bon fonctionnement de cas particuliers dans une application.
Le débogueur permet de réaliser ces opérations. Le débogueur permet également de déboguer les composants utilisés dans une application. Pour plus de détails, consultez Déboguer un composant.
Remarque : WINDEV, WEBDEV et WINDEV Mobile mettent également à votre disposition divers outils de trace (fenêtre de trace, boîte d'information, ...). Pour plus de détails, consultez le paragraphe Déboguer sans le débogueur.
Le débogueur
Le débogueur permet de tracer les programmes en WLangage afin de faciliter la mise au point de ces programmes.
Le code source exécuté est visualisé à l'écran. Les différents traitements exécutés sont hiérarchisés dans le volet "Débogueur".
La valeur des variables peut être visualisée :
  • Individuellement dans la bulle d'aide de survol de chaque variable.
  • Dans le volet "Débogueur" (icône pour visualiser les variables locales et icône pour visualiser les variables globales).
Comment le faire ?

Lancer le débogueur

Pour lancer le débogueur, plusieurs moyens sont possibles :
  • Dès le début du test du projet en activant l'option "Projet .. Mode test .. Tracer le projet". Le débogueur est lancé en même temps que l'exécution du projet.
    Cette méthode est conseillée si l'examen des traitements d'initialisation du projet et de la première fenêtre ou page est nécessaire.
    Dès le début du test du projet : sous le volet "Projet", dans le groupe "Mode test", déroulez "Mode test" et sélectionnez "Tracer le projet". Le débogueur est lancé en même temps que l'exécution du projet.
    Cette méthode est conseillée si l'examen des traitements d'initialisation du projet et de la première fenêtre ou page est nécessaire.
  • WINDEV Lors de l'interruption du test en appuyant sur les touches Ctrl + Pause. L'action effectuée après l'utilisation des touches Ctrl + Pause (clic sur un bouton, ...) lancera le débogueur.
  • Lors du test, en lançant le débogueur depuis l'éditeur de code. Cette méthode est conseillée par exemple pour lancer le débogueur lorsque un traitement semble anormalement long (possibilité d'une boucle infinie). Dans ce cas, effectuez les manipulations suivantes :
    • Cliquez sur l'icône WINDEV, WEBDEV ou WINDEV Mobile dans la barre des tâches.
    • A la question "Voulez-vous arrêter le test ? ", répondez "Non".
    • Dans le volet "Débogueur", cliquez sur l'icône en forme de main ().
  • Par programmation en ajoutant dans le code le mot-clé Stop à l'endroit à partir duquel le débogueur doit être lancé.
    Cette méthode est conseillée lorsque le traitement à partir duquel le débogueur doit être lancé est connu.
    Remarque : Le mot-clé Stop est pris en compte uniquement lors des tests de l'application sous l'éditeur de WINDEV, WINDEV Mobile ou WEBDEV. Lors de l'utilisation de l'exécutable, le mot-clé Stop est ignoré.
  • Dans l'éditeur de code en ajoutant dans le code un point d'arrêt à l'endroit à partir duquel le débogueur doit être lancé. Pour plus de détails sur les points d'arrêt, consultez le paragraphe Gestion des points d'arrêt.
  • A partir d'une expression saisie dans le volet "Débogueur". Pour plus de détails sur les expressions, consultez le paragraphe Expression à évaluer.
Versions 18 et supérieures

Remarque : Iconiser ou non l'éditeur lors du test

Par défaut, lors d'un test, l'éditeur s'icônise. Selon la configuration matérielle (écran large, 2 écrans, ...), cette iconisation n'est pas utile.
Pour conserver l'éditeur ouvert :
  1. Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Options" et sélectionnez "Options de l'éditeur de code".
  2. Dans l'onglet "Débogueur", décochez l'option "Iconiser l'éditeur lors du mode test".
  3. Validez.
Nouveauté 18

Remarque : Iconiser ou non l'éditeur lors du test

Par défaut, lors d'un test, l'éditeur s'icônise. Selon la configuration matérielle (écran large, 2 écrans, ...), cette iconisation n'est pas utile.
Pour conserver l'éditeur ouvert :
  1. Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Options" et sélectionnez "Options de l'éditeur de code".
  2. Dans l'onglet "Débogueur", décochez l'option "Iconiser l'éditeur lors du mode test".
  3. Validez.

Remarque : Iconiser ou non l'éditeur lors du test

Par défaut, lors d'un test, l'éditeur s'icônise. Selon la configuration matérielle (écran large, 2 écrans, ...), cette iconisation n'est pas utile.
Pour conserver l'éditeur ouvert :
  1. Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Options" et sélectionnez "Options de l'éditeur de code".
  2. Dans l'onglet "Débogueur", décochez l'option "Iconiser l'éditeur lors du mode test".
  3. Validez.
Versions 16 et supérieures

Utiliser le débogueur en 32 bits et 64 bits

Le débogueur est disponible en 32 bits et en 64 bits. Toutes les fonctionnalités sont disponibles dans ces deux modes.
WINDEV Tests en WINDEV :
Dans une application WINDEV, il est possible de créer des configurations de projet pour des exécutables 32 et 64 bits. Si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits, si votre poste est équipé d'un système 64 bits, le débogueur sera exécuté en 64 bits.
Système 32 bitsSystème 64 bits
Configuration Exécutable 32 bitsGO 32 bitsGO 32 bits
Configuration Exécutable 64 bitsGO ! (32 bits)GO 64 bits
ComposantGO 32 bitsGO 32 bits ou 64 bits
Remarques :
  • Lors d'une exécution d'une configuration de projet 64 bits sur un système 32 bits, un point d'exclamation apparait sur l'icône GO pour indiquer que l'exécution sera effectuée en 32 bits.
  • Lors de l'exécution d'un composant, il est nécessaire d'indiquer le mode de débogage de l'élément. Cette option peut être indiqué par le menu de l'icône GO du projet (option "Déboguer l'élément en 64 bits").
WEBDEV - Code Serveur Tests en WEBDEV :
En WEBDEV, si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits. Par contre, si votre poste est équipé d'un système 64 bits, le débogueur pourra être exécuté soit en 32 bits (cas par défaut), soit en 64 bits.
Pour exécuter les tests en 64 bits, il suffit de sélectionner l'option "Projet .. Mode test .. Déboguer l'élément en 64 bits". Pour exécuter les tests en 64 bits : sous le volet "Projet", dans le groupe "Mode test", déroulez "Mode test" et sélectionnez "Déboguer l'élément en 64 bits".
Cette option est également disponible dans le menu déroulant sous l'icône "Go" du projet ou sous l'icône "Go" d'un élément.
Si cette option est désélectionnée, le test sera réalisé en 32 bits.
Nouveauté 16

Utiliser le débogueur en 32 bits et 64 bits

Le débogueur est disponible en 32 bits et en 64 bits. Toutes les fonctionnalités sont disponibles dans ces deux modes.
WINDEV Tests en WINDEV :
Dans une application WINDEV, il est possible de créer des configurations de projet pour des exécutables 32 et 64 bits. Si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits, si votre poste est équipé d'un système 64 bits, le débogueur sera exécuté en 64 bits.
Système 32 bitsSystème 64 bits
Configuration Exécutable 32 bitsGO 32 bitsGO 32 bits
Configuration Exécutable 64 bitsGO ! (32 bits)GO 64 bits
ComposantGO 32 bitsGO 32 bits ou 64 bits
Remarques :
  • Lors d'une exécution d'une configuration de projet 64 bits sur un système 32 bits, un point d'exclamation apparait sur l'icône GO pour indiquer que l'exécution sera effectuée en 32 bits.
  • Lors de l'exécution d'un composant, il est nécessaire d'indiquer le mode de débogage de l'élément. Cette option peut être indiqué par le menu de l'icône GO du projet (option "Déboguer l'élément en 64 bits").
WEBDEV - Code Serveur Tests en WEBDEV :
En WEBDEV, si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits. Par contre, si votre poste est équipé d'un système 64 bits, le débogueur pourra être exécuté soit en 32 bits (cas par défaut), soit en 64 bits.
Pour exécuter les tests en 64 bits, il suffit de sélectionner l'option "Projet .. Mode test .. Déboguer l'élément en 64 bits". Pour exécuter les tests en 64 bits : sous le volet "Projet", dans le groupe "Mode test", déroulez "Mode test" et sélectionnez "Déboguer l'élément en 64 bits".
Cette option est également disponible dans le menu déroulant sous l'icône "Go" du projet ou sous l'icône "Go" d'un élément.
Si cette option est désélectionnée, le test sera réalisé en 32 bits.

Utiliser le débogueur en 32 bits et 64 bits

Le débogueur est disponible en 32 bits et en 64 bits. Toutes les fonctionnalités sont disponibles dans ces deux modes.
WINDEV Tests en WINDEV :
Dans une application WINDEV, il est possible de créer des configurations de projet pour des exécutables 32 et 64 bits. Si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits, si votre poste est équipé d'un système 64 bits, le débogueur sera exécuté en 64 bits.
Système 32 bitsSystème 64 bits
Configuration Exécutable 32 bitsGO 32 bitsGO 32 bits
Configuration Exécutable 64 bitsGO ! (32 bits)GO 64 bits
ComposantGO 32 bitsGO 32 bits ou 64 bits
Remarques :
  • Lors d'une exécution d'une configuration de projet 64 bits sur un système 32 bits, un point d'exclamation apparait sur l'icône GO pour indiquer que l'exécution sera effectuée en 32 bits.
  • Lors de l'exécution d'un composant, il est nécessaire d'indiquer le mode de débogage de l'élément. Cette option peut être indiqué par le menu de l'icône GO du projet (option "Déboguer l'élément en 64 bits").
WEBDEV - Code Serveur Tests en WEBDEV :
En WEBDEV, si votre poste est équipé d'un système 32 bits, le débogueur sera exécuté en 32 bits. Par contre, si votre poste est équipé d'un système 64 bits, le débogueur pourra être exécuté soit en 32 bits (cas par défaut), soit en 64 bits.
Pour exécuter les tests en 64 bits, il suffit de sélectionner l'option "Projet .. Mode test .. Déboguer l'élément en 64 bits". Pour exécuter les tests en 64 bits : sous le volet "Projet", dans le groupe "Mode test", déroulez "Mode test" et sélectionnez "Déboguer l'élément en 64 bits".
Cette option est également disponible dans le menu déroulant sous l'icône "Go" du projet ou sous l'icône "Go" d'un élément.
Si cette option est désélectionnée, le test sera réalisé en 32 bits.

Exécuter du code sous le débogueur

Une fois le débogueur activé, chaque manipulation effectuée dans l'application engendre le positionnement du curseur du débogueur (représenté par la flèche) sur le code en cours d'exécution. Il est alors possible de continuer l'exécution du code :
  • soit ligne à ligne,
  • soit par bloc de lignes,
  • soit en ignorant les points d'arrêt,
  • soit en modifiant directement le code à exécuter ("Edit and continue"),
  • soit en indiquant la ligne de code à exécuter (Retour arrière).
WEBDEV - Code Serveur Seul le code serveur peut être exécuté.
1. Exécuter du code ligne à ligne
Pour exécuter la ligne de code en cours, utilisez :
  • La touche F7 pour exécuter le code de la ligne et le code des procédures appelées par cette ligne. L'exécution de la ligne et des procédures appelées par la ligne sera visualisée sous le débogueur.
  • La touche F8 pour exécuter le code de la ligne et le code des procédures appelées par cette ligne. Seule l'exécution de la ligne sera visualisée sous le débogueur.
Versions 23 et supérieures
Remarque : Si la procédure possède l'attribut d'extension <sans pas à pas>, son code sera ignoré lors du débugage. Pour plus de détails, consultez Ignorer des fonctions lors du débugage pas à pas.
Nouveauté 23
Remarque : Si la procédure possède l'attribut d'extension <sans pas à pas>, son code sera ignoré lors du débugage. Pour plus de détails, consultez Ignorer des fonctions lors du débugage pas à pas.
Remarque : Si la procédure possède l'attribut d'extension <sans pas à pas>, son code sera ignoré lors du débugage. Pour plus de détails, consultez Ignorer des fonctions lors du débugage pas à pas.
2. Exécuter du code par bloc de lignes
Par défaut, le curseur du débogueur (flèche) est positionné sur la ligne en cours. Le curseur de saisie de la souris (caret) peut être positionné sur n'importe quelle autre ligne de code.
Pour exécuter les lignes de code situées entre le curseur du débogueur et le caret, utilisez la touche F6.
3. Exécuter du code en ignorant les points d'arrêt
Pour exécuter le code en ignorant les points d'arrêts, cliquez sur l'icône .
Remarque : Pour arrêter l'exécution du code sous le débogueur, cliquez sur l'icône . Le test du projet continue sans le débogueur.
4. Modifier directement le code à exécuter
Pour modifier le code à exécuter, il suffit de modifier directement le code sous l'éditeur de code pendant l'exécution du test. Une fenêtre s'affiche indiquant qu'un test est en cours et demandant si le test doit être arrêté. Il suffit de ne pas arrêter le test, d'effectuer la modification voulue et de reprendre le test.
5. Exécuter du code en indiquant la ligne de code à exécuter (Retour Arrière)
Il est possible d'indiquer au débogueur la ligne de code à exécuter immédiatement. Cette ligne de code peut se trouver avant ou après la ligne de code en cours d'exécution. Cette fonctionnalité est intéressante par exemple si le code à exécuter a été modifié.
Pour cela, il suffit d'utiliser l'option "Définir l'instruction suivante" du débogueur.

Configurer le mode d'arrêt du débogueur

Il est possible de configurer le mode d'arrêt du test (et du débogueur) dans les options d'affichage de l'éditeur de code (option "Outils .. Options .. Options d'édition du code", onglet "Débogueur").Il est possible de configurer le mode d'arrêt du test (et du débogueur) dans les options d'affichage de l'éditeur de code :
  1. Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Options" et sélectionnez "Options de l'éditeur de code".
  2. Affichez l'onglet "Débogueur".
Notes

Hiérarchie des traitements

Les traitements en cours d'exécution dans le débogueur sont hiérarchisés. Cette hiérarchisation est listée dans la pile des appels dans le volet "Débogueur".
Par exemple, le traitement d'initialisation de l'application lance une fenêtre qui utilise une procédure. Lorsque la procédure sera en cours de débogage, il sera possible de revenir sous l'éditeur de code :
  • A l'endroit où la procédure est appelée.
  • A l'endroit où la fenêtre est ouverte.
Remarque : Cette fonctionnalité n'arrête pas le débogage sous le débogueur.

Visualiser le contenu des variables

Le débogueur permet d'examiner la valeur des variables utilisées dans le code en cours. Les valeurs peuvent être visualisées :
  • Lors du survol d'une variable avec la souris.
  • Dans le débogueur :
    • L'icône permet de visualiser les variables locales.
    • L'icône permet de visualiser les variables globales.
    • Il est possible de visualiser le contenu des variables sous forme hexadécimale.
Le débogueur propose également un mode de visualisation en profondeur. Ce mode permet de visualiser les données de type Tableau, Structure ou Objet sous la forme d'un tableau de résultats. Par exemple, une classe peut contenir un membre étant lui-même un objet. Dans ce cas, un double-clic sur un objet (comme pour éditer une variable simple) ouvre une fenêtre contenant tous les membres de cet objet. Il est possible de cliquer à nouveau sur un élément pour voir son contenu et / ou le modifier.
Versions 16 et supérieures
Fenêtre de watch
Le contenu des variables peut être visualisé dans une fenêtre spécifique : la fenêtre de watch. Pour afficher cette fenêtre, il suffit d'utiliser l'option "Editer la valeur" du menu contextuel de la variable dans le volet "Débogueur". Cette fenêtre permet aussi bien de visualiser le contenu des variables simple que le contenu de variables structurées : tableau, chaîne RTF multiligne, type structuré du langage, classe, ...
Cette fenêtre est non modale : il est possible d'ouvrir plusieurs fenêtres de watch sur différentes variables simultanément. Il est également possible de conserver ces fenêtres ouvertes pendant le débogage de l'application. Ces fenêtres sont mises à jour à chaque instruction exécutée.
Cette fenêtre permet également de :
  • Visualiser la variable affichée en mode hexadécimal.
  • Sauvegarder le contenu de la variable sur le disque (intéressant pour une variable de type RTF, HTML, image, ...).
  • Afficher une image contenue dans une variable ou un mémo.
  • Afficher le contenu d'une variable RTF ou HTML sous forme formatée.
Nouveauté 16
Fenêtre de watch
Le contenu des variables peut être visualisé dans une fenêtre spécifique : la fenêtre de watch. Pour afficher cette fenêtre, il suffit d'utiliser l'option "Editer la valeur" du menu contextuel de la variable dans le volet "Débogueur". Cette fenêtre permet aussi bien de visualiser le contenu des variables simple que le contenu de variables structurées : tableau, chaîne RTF multiligne, type structuré du langage, classe, ...
Cette fenêtre est non modale : il est possible d'ouvrir plusieurs fenêtres de watch sur différentes variables simultanément. Il est également possible de conserver ces fenêtres ouvertes pendant le débogage de l'application. Ces fenêtres sont mises à jour à chaque instruction exécutée.
Cette fenêtre permet également de :
  • Visualiser la variable affichée en mode hexadécimal.
  • Sauvegarder le contenu de la variable sur le disque (intéressant pour une variable de type RTF, HTML, image, ...).
  • Afficher une image contenue dans une variable ou un mémo.
  • Afficher le contenu d'une variable RTF ou HTML sous forme formatée.
Fenêtre de watch
Le contenu des variables peut être visualisé dans une fenêtre spécifique : la fenêtre de watch. Pour afficher cette fenêtre, il suffit d'utiliser l'option "Editer la valeur" du menu contextuel de la variable dans le volet "Débogueur". Cette fenêtre permet aussi bien de visualiser le contenu des variables simple que le contenu de variables structurées : tableau, chaîne RTF multiligne, type structuré du langage, classe, ...
Cette fenêtre est non modale : il est possible d'ouvrir plusieurs fenêtres de watch sur différentes variables simultanément. Il est également possible de conserver ces fenêtres ouvertes pendant le débogage de l'application. Ces fenêtres sont mises à jour à chaque instruction exécutée.
Cette fenêtre permet également de :
  • Visualiser la variable affichée en mode hexadécimal.
  • Sauvegarder le contenu de la variable sur le disque (intéressant pour une variable de type RTF, HTML, image, ...).
  • Afficher une image contenue dans une variable ou un mémo.
  • Afficher le contenu d'une variable RTF ou HTML sous forme formatée.

Expression à évaluer

Le débogueur permet d'insérer une expression à évaluer. Cette expression peut être de tout type : variable, fonction, opération sur variables, ... Le résultat de l'expression est calculé et affiché.
Cette expression permet d'effectuer un débogage personnalisé. Par exemple, il est possible de connaître le contenu d'une variable au fur et à mesure de son utilisation dans l'application.
Une expression peut être auto-stop : le débogueur peut par exemple se lancer dès qu'une condition est vérifiée ou dès que la valeur d'une variable est modifiée.
Par exemple, sur une mailing de 40 000 clients, un problème survient sur le numéro 12345. Pour lancer le débogueur dès que le numéro de client est égal à 12345, il suffit de définir l'expression suivante comme étant auto-stop :
Client.NumCli = 12345
Pour insérer une expression :
  1. Sélectionnez l'option "Ajouter une expression" du menu contextuel du volet "Débogueur".
  2. Saisissez la nouvelle expression.
  3. Validez la création de l'expression en appuyant sur la touche Entrée. La valeur de l'expression sera automatiquement affichée dans la colonne "Valeur" lors du débogage.
Pour modifier une expression :
  1. Sélectionnez l'expression à modifier.
  2. Sélectionnez l'option "Éditer l'expression" du menu contextuel du volet "Débogueur".
  3. Modifiez l'expression.
  4. Validez la modification en appuyant sur la touche Entrée. La valeur de l'expression sera automatiquement affichée dans la colonne "Valeur" lors du débogage.
Pour supprimer une expression :
  1. Sélectionnez l'expression à supprimer.
  2. Sélectionnez l'option "Supprimer l'expression" du menu contextuel du volet "Débogueur". L'expression est supprimée.
Pour rendre une expression auto-stop : il suffit de cliquer dans la colonne "Stop" en face de l'expression désirée.

Compte-rendu HFSQL et compte-rendu WLangage

Le compte-rendu HFSQL (icône ) permet d'afficher le résultat des fonctions HFSQL suivantes (si elles existent) dans le volet "Débogueur" :
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Le compte-rendu du WLangage (icône ) permet d'afficher les informations suivantes dans le volet "Débogueur" :
  • le numéro du timer (s'il existe),
  • le numéro et le message des erreurs non fatales,
  • le nom de l'objet en cours (correspondant au mot-clé MoiMême).

Gestion des threads

Il est possible de déboguer une application multi-threadée. Lors de l'arrivée sur un point d'arrêt ou sur une instruction STOP, vous pouvez :
  • Visualiser les différents threads.
  • Basculer sur les informations (pile d'appels, variables, ...) des différents threads grâce à la combo présente dans le volet "Débogueur".
Versions 23 et supérieures

Ignorer certaines fonctions lors du débugage en mode "Pas à pas"

Lors des phases de débugage en pas à pas, il est quelque fois nécessaire de ne pas déboguer le contenu de certaines fonctions (par exemple une fonction de log ou une fonction de conversion).
Pour cela, il suffit de faire suivre la déclaration de la fonction, procédure ou méthode de l'attribut d'extension <sans pas à pas>.
Pour plus de détails, consultez :
Nouveauté 23

Ignorer certaines fonctions lors du débugage en mode "Pas à pas"

Lors des phases de débugage en pas à pas, il est quelque fois nécessaire de ne pas déboguer le contenu de certaines fonctions (par exemple une fonction de log ou une fonction de conversion).
Pour cela, il suffit de faire suivre la déclaration de la fonction, procédure ou méthode de l'attribut d'extension <sans pas à pas>.
Pour plus de détails, consultez :

Ignorer certaines fonctions lors du débugage en mode "Pas à pas"

Lors des phases de débugage en pas à pas, il est quelque fois nécessaire de ne pas déboguer le contenu de certaines fonctions (par exemple une fonction de log ou une fonction de conversion).
Pour cela, il suffit de faire suivre la déclaration de la fonction, procédure ou méthode de l'attribut d'extension <sans pas à pas>.
Pour plus de détails, consultez :
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire