Flex Debug – Utilisation de FDB
Avec le SDK Flex 2, Adobe inclut FDB, un debugger en ligne de commande (command-line debugger) gratuit. Cela permet aux développeurs qui ne veulent pas acheter Flex Builder 2 d'accéder à un debugger complet. Cet article de couvre pas l'ensemble des fonctionnalités de FDB en détail, mais nous allons voir les bases et les avantages de ce debugger.
Vous devez lancer FDB par ligne de commande, comme vous le feriez avec n'importe quelle autre application command-line. Une fois démarré, vous aurez le prompt FDB (fdb). Vous pouvez taper "help" pour avoir la liste des commandes disponibles.
Le point de départ pour une session de debug avec FDB est de lancer un SWF compilé avec le flag -debug dans le Debug Player et d'établir une connexion avec FDB. Vous faîtes cela en exécutant la commande "run" du prompt FDB. Une fois la commande exécutée, FDB va confirmer qu'il attend une connexion du Player. Pour connecter Flash Player à FDB, ouvrez simplement un SWF debug dans le Debug Player. Quand un SWF de debug est ouvert, il va tenter de se connecter automatiquement à un debugger local, si disponible.
Si vous ouvrez une application sans que le debugger soit en attente d'une connexion, le Flash Debug Player va vous demander de sélectionner le debugger que vous souhaitez utiliser. Bien que, de manière classique, un utilisateur va lancer l'application et le debugger sur la même machine, ce qui veut dire que vous ne recevrez jamais la fenêtre vous demandant de choisir quel debugger utiliser, il est possible de commencer une session de remote debugging (debugging distant). Le remote debugging vous permet d'exécuter une application sur une machine qui est différente de celle du debugger, ce qui vous permet de debugger des problèmes que vous ne pouvez reproduire que sur certaines machines, ou même debugger sur plusieurs systèmes d'exploitation. Par exemple, une application sur Mac OS X exécute une application alors que le debugger est lancé sur une machine Windows. Pour cela, toutes les communications de debugging passent par TCP sur le port 7935.
Une fois que la connexion est établie, vous pouvez fixer des points d'arrêt ou demander au debugger de continuer l'exécution d'une application. Pour continuer l'exécution, utilisez la commande "continue". Les messages trace() de l'application sont affichés dans le debugger dès qu'ils se produisent.
Les breakpoints (points d'arrêt) peuvent être fixés en utilisant plusieurs méthodes. La méthode la plus commune de fixer des breakpoints est de spécifier la class et le numéro de ligne du breakpoint, ce que vous pouvez faire en utilisant la commande "break". Par exemple, si vous voulez insérer un breakpoint à la ligne 56 de la classe MainApp, vous devrez utiliser la commande:
break MainApp.mxml:56
Si vous voulez fixer un breakpoint quand un bouton est pressé et que vous n'êtes pas sur de la méthode qui sera appelée quand l'évènement va se produire, vous pouvez entrer "break button". Cela va retourner la liste des méthodes commençant par le mot "button". Depuis cette liste, vous pourrez par exemple voir la méthode buttonPressed et l'emplacement de cette méthode. Avec cette information, vous pouvez insérer un point d'arrêt en appelant:
break buttonPressed
Une fois que cela est fait, vous aurez besoin d'appeler la commande "continue", qui va ordonner au debugger d'autoriser le player à continuer à exécuter l'application. Il y a d'autres méthodes pour fixer des points d'arrêt avec FDB, que vous pourrez trouver avec la commande "help breakpoint".
Une fois que l'application s'exécute, le debugger va vous informer quand il va rencontrer un point d'arrêt. Une fois que le breakpoint a été rencontré, vous avez plusieurs choix. Vous pouvez taper la commande "continue", qui aura pour effet de continuer la lecture de l'application, ou alors de faire du pas-à-pas dans l'application en utilisant la commande "step", ou alors de fixer la valeur d'une variable en utilisant la commande "set". Une fois que vous avez terminé le debugging, vous pouvez quitter FDB pour clore la session de debugging, ce qui va automatiquement mettre fin à la connexion active avec le Debug Player (ou vous pouvez utiliser la commande "kill").
Comme vous l'avez vu, FDB facilite la recherche de méthodes sur lesquelles vous voulez fixer des points d'arrêt. Une autre de ses fonctionalités, que le debugger de Flex Builder ne supporte pas est la possibilité de fixer des points d'arrêt conditionnels en utilisant la commande "condition", et la possibilité d'afficher la liste de tous les types et les fonctions chargés avec la commande "info functions".
FDB peut être un outil puissant, mais comme vous le verrez dans l'article suivant, Flex Builder propose une méthode bien plus pratique de debugger des applications.






24 août 2008
Tout d'abord, merci pour ce didacticiel.
À noter que quand on utilise "fdb help" avec FB3 on a le message "No help file (fdbhelp*.txt) found" et aucune aide indiquée.
J'ai posté un rapport de bug : https://bugs.adobe.com/jira/browse/SDK-16571
MAis ceux qui sont intéressés peuvent trouver l'aide attendue en fouillant dans l'archive fdb.jar du sdk Flex dans \flex\tools\debugger\cli\fdbhelp_en.txt. En plus quand je vois comment la doc est complète, c'est dommage de la rater.
17 décembre 2008
merci pour les informations.
T 'as raison , FDB facilite la recherche de méthodes sur lesquelles on veut fixer des break points. La méthode de Flex Builder est peut-être plus pratique mais j ai essaye avec FDB et ça marche. Seulement un peu de patience …