Le premier site francophone dédié au développement Pocket PC

CeDbgView32
Auteur
Laurent Docquir
Date 15 mai 2005
 

 

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

 

Copyright 2001-2005 - Tous droits réservés
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.