|
Qu'est-ce que CeDbgView32 ?
Il s'agit d'un outil vous permettant de
visualiser, sur votre PC, les messages de débogage en provenance
d'une application tournant sur un appareil Windows Mobile. Les messages
de débogage sont envoyés au travers de l'API Win32 OutputDebugString.
Contraitement à une trace, une chaîne de débogage
n'est pas stockée dans un fichier mais dans la mémoire.
Pour la visualiser, il vous faut un outil spécifique comme CeDbgView32.
Pourquoi cet outil ?
Aujourd'hui si vous voulez visualiser les messages de
débogage d'une application, vous devez installer un outil de développement
complet comme Embedded Visual C++. Il n'existe pas d'outil permettant
simplement de visualiser ces messages.
Utiliser eVC++ pour visualiser les messages de débogage présente
deux inconvénients mineurs :
Si vous avez bien suivi mes indications, vous devriez
obtenir un code similaire à ceci :
Si vous développez en VB .NET et C#, il est dommage de devoir
installer eVC++ juste pour pouvoir visualiser ce type de message.
eVC++ est incapable de s'attacher dynamiquement à un processus
qui est déjà en cours d'exécution. Hors dans certains
cas, il peut être intéressante de commencer à recevoir
des messages de débogage sans arrêter et redémarrer
l'application cible.
CeDbgView32 résout ces deux inconvénients :
CeDbgView32 est un utilitaire très léger qui ne nécessite
que très peu d'espace disque et de ressources systèmes.
CeDbgView32 permet de s'accrocher à une application en cours d'exécution.
Comment fonctionne CeDbgView32 ?
L'outil est scindé en deux parties:
Une application Windows (CeDbgView32.exe) destine à être
utilisée sur votre ordinateur de bureau ou sur votre portable.
Elle établit une connexion ActiveSync avec votre appareil mobile
afin de déboguer une application cible. Elle récupère
les messages et les affiche dans la fenêtre principale.
Une petite DLL (CeDbgServer.dll) à placer sur votre appareil
mobile. Cette DLL est un petit de débogueur basique qui intercepte
les messages et les transfère à CeDbgView32.exe.
CeDbgView32 est-il un outil distant ?
CeDbgView32 peut-être considéré
comme un outil distant malgré le fait qu'il n'utilise pas le Gestionnaire
de Plateforme. Tous les outils distants développés par Microsoft
comme 'Remote Zoomin', 'Remote HeapWalker' utilisent le Gestionnaire de
Platforme pour établir la connexion à la cible. Pour ma
part, j'ai préféré utiliser directement le protocole
ActiveSync pour diminuer les pré-requis à installer. En
effet le Gestionnaire de Plateforme s'installe avec eVC++ ce qui nous
ramène au problème de départ : que faire quand nous
n'avons pas eVC++ sous la main !
Installer CeDbgView32
Systèmes d'exploitation et processeurs supportés
Les systèmes d'exploitation supportés sont:
Windows CE 3.x (inclus Pocket PC & Pocket PC 2002)
Windows CE 4.x (inclus Pocket PC 2003 & Pocket PC 2003 SE)
Les processeurs supportés sont:
Pour Windows CE 3.x:
ARM
MIPS
SH3
Pour Windows CE 4.x:
ARMV4, ARMV4i
MIPS, MIPS16, MIPSII, MIPSII_FP, MIPSIV
SH3, SH4
X86
Procédure d'installation automatisée
Une procédure d'installation automatique
de type MSI est fournie pour vous aider à mettre en place l'outil.
Cette procédure propose aussi une désinstallation propre
du logiciel.
Procédure d'installation manuelle
Vous pouvez aussi installer CeDbgView32 manuellement:
Téléchargez CeDbgView32.zip
du site CodePPC et faites une extraction des fichiers sur votre disque
local.
A partir de l'arborescence du ZIP présentée
ci-dessous, choisissez la DLL CeDbgServer.dll adaptée à
la combinaison de la version du système d'exploitation et de la
version du processeur de votre appareil mobile. Copiez cette DLL dans
le répertoire \Windows de votre appareil mobile (*)
Lancez CeDbgView32.exe sur votre PC et
le tour est joué.
(*) Note: L'étape 2 est optionnelle. En effet, CeDbgView32 est
capable de déterminer de lui-même la DLL adéquate
pour votre appareil mobile. Pour ce faire, lancez CeDbgView32 et démarrez
une première session de debugging. La DLL adéquate sera
automatiquement téléchargée comme le montre la capture
d'écran suivante :

Démarrer une session de débogage
Introduction
CeDbgServer.dll s'attache ou démarre
une application afin d'en récupérer les messages de débogage.
Elle ne permet pas de placer des points d'arrêt dans le code et
de faire de l'exécution pas à pas. Une autre limitation
de cette première version est que l'application cible sera arrêtée
à la fin de la session de débogage.
Outre les messages de débogage, CeDbgView32 intercepte
aussi les évènements suivants :
Démarrage des threads
Fin des threads
Génération d'une exception
S'attacher à un processus en cours d'exécution
Dans l'écran 'Nouvelle
session de débogage', la partie haute de la fenêtre propose
la liste des processus en cours d'exécution. Choisissez le processus
que vous désirez déboguer ensuite cliquez le bouton 'Attacher'.
Le bouton 'Rafraîchir' permet d'actualiser la liste.
Attention:
N'essayez pas de déboguer des processus systèmes ou des
processus liés au constructeur de votre appareil. En effet la plupart
d'entre eux sont vitaux pour le bon fonctionnement de l'appareil. Comme
les processus débogués sont tués à la fin
de la session, il y a de grandes chances pour que votre appareil mobile
devienne instable vous forçant à effectuer un redémarrage
à chaud (reset).

Démarrer un processus pour le déboguer
La partie basse de l'écran 'Nouvelle
session de débogage', vous permet de spécifier les informations
nécessaires au démarrage d'une nouvelle tâche. Fournissez
le chemin complet de l'application à démarrer, les paramètres
(optionnel) et cliquez sur le bouton 'Démarrer'. Les cinq dernières
applications déboguées sont retenues dans une liste pour
accès rapide ultérieurement.

Recevoir les messages de debug
Il n'y a rien de spécial à
faire sinon à regarder les messages défiler ;-)
Quelques options d'affichage sont disponibles:
Vous pouvez changer la police utilisée pour l'affichage
des messages.
Vous pouvez déplacer et modifier la taille de la fenêtre
comme bon vous semble. La taille et la position seront sauvegardées
à la sortie de l'application.
Vous pouvez limiter le nombre de messages affichés à
l'écran.
Vous pouvez aussi activer/désactiver le déroulement
automatique des messages dans la fenêtre principale.
Fichier
zip pour une installation manuelle
Fichier
msi pour une installation automatique
Laurent
Docquir
|