Débogage sur Windows
Si vous ĂȘtes confrontĂ©s Ă des plantages ou des problĂšmes dans Electron et que vous pensez qu'il ne viennent pas de votre app JavaScript, mais plutĂŽt d'Electron lui-mĂȘme, alors le dĂ©bogage peut ĂȘtre un peu difficile, surtout pour les dĂ©veloppeurs peu expĂ©rimentĂ©s dans le dĂ©bogage natif/C++. Cependant, en utilisant Visual Studio, le serveur hĂ©bergĂ© de symboles d'Electron's ainsi que le code source d'Electron, vous pouvez effectuer du dĂ©bogage pas Ă pas avec points d'arrĂȘt dans le code source d'Electron.
A Voir également : Il existe un tas d'informations intéressantes dont la plupart s'appliquent également à Electron sur le site developpeur de Chronium : Debugging Chromium on Windows.
SpĂ©cifications requisesâ
-
A debug build of Electron: The easiest way is usually building it yourself, using the tools and prerequisites listed in the build instructions for Windows. Alors que vous pouvez attacher le debugger et l'utiliser pour Electron que vous pouvez télécharger directement, vous allez vous rendre compte que celui-ci est fortement optimisé, rendant ainsi le débogage considérablement plus difficile : le débogueur ne sera pas en mesure de vous montrer le contenu de toutes les variables et le chemin d'exécution peut sembler étrange à cause d'optimisations du compilateur telles que "inlining, tail calls, etc".
-
Outils Visual Studio C++ : les Ă©ditions gratuites "community" de Visual Studio 2013 et Visual Studio 2015 fonctionnent tous les deux. Once installed, configure Visual Studio to use Electron's Symbol server. Cela donnera Ă Visual Studio une meilleure comprĂ©hension de ce qui se passe Ă lâintĂ©rieur d'Electron, rendant plus facile l'affichage des variables dans un format plus lisible.
-
ProcMon : l'outil gratuit de SysInternals vous permet dâinspecter les paramĂštres d'un processus, de gĂšrer des fichiers et les opĂ©rations de registre.
DĂ©bogage d'Electronâ
Pour démarrer une session de débogage, ouvrez PowerShell/CMD et exécutez votre version debug d'Electron, utilisant votre application comme paramÚtre.
$ ./out/Testing/electron.exe ~/my-electron-app/
DĂ©finition de points dâarrĂȘtâ
Vous pouvez ouvrir Visual Studio. Electron nâest pas compilĂ© avec Visual Studio et par consĂ©quent ne contient pas de fichier de projet - vous pouvez cependant ouvrir les fichiers de code source « Comme fichier », ce qui signifie que Visual Studio va les ouvrir par eux-mĂȘmes. Vous pouvez quand mĂȘme dĂ©finir des points dâarrĂȘt - Visual Studio cherchera automatiquement le code source correspond au code qui sâexĂ©cute dans le processus attachĂ© et le stopper en consĂ©quence.
Les fichiers de code pertinents peuvent ĂȘtre trouvĂ©s dans ./shell/
.
Attacherâ
Vous pouvez attacher le dĂ©bogueur Visual Studio Ă un processus en cours dâexĂ©cution sur un ordinateur local ou distant. Lorsque le processus est en cours dâexĂ©cution, cliquez sur dĂ©boguer/attacher au processus (ou appuyez sur CTRL+ALT+P
) pour ouvrir la boßte de dialogue « Attacher au processus ». Vous pouvez utiliser cette fonctionnalité pour déboguer des applications qui s'exécutent sur un ordinateur local ou distant, déboguer plusieurs processus simultanément.
Si Electron sâexĂ©cute sous un compte dâutilisateur diffĂ©rent, sĂ©lectionnez la case afficher les processus de tous les utilisateurs
. Notez que selon le nombre de BrowserWindows ouvert de votre application, vous verrez plusieurs processus. Une application typique avec une seule fenĂȘtre se traduira dans Visual Studio par prĂ©senter juste deux entrĂ©es d'Electron.exe
- l'un pour le processus principal et lâautre pour le processus de rendu. Ătant donnĂ© que la liste vous donne seulement des noms, il nây a actuellement aucun moyen fiable de savoir qui est qui.
Quel processus dois-je attacher ?â
Le code exĂ©cutĂ© dans le processus principal (qui est le code se trouvant dans votre fichier JavaScript main ou bien encore lancĂ© par celui-ci) s'exĂ©cutera Ă lâintĂ©rieur du processus principal, tandis que les autres morceaux de code sâexĂ©cuteront Ă lâintĂ©rieur de leur processus de rendu respectif.
Vous pouvez rattacher plusieurs programmes lorsque vous dĂ©boguez, mais un seul de ceux-ci est actif dans le dĂ©bogueur Ă tout moment. Vous pouvez configurer le programme actif dans la barre dâoutils Emplacement de dĂ©bogage
ou de la fenĂȘtre de processus
.
Utilisation de ProcMon pour observer un processusâ
Alors que Visual Studio est excellent pour lâinspection de parties de code spĂ©cifiques, la force de ProcMon est vraiment dans l'observation des ineractions de votre application avec le systĂšme dâexploitation - il capture les fichiers, registre, rĂ©seau, processus et exĂ©cute un profilage des processus. Il tente de logguer tous les Ă©vĂ©nements qui se produisent et peut ĂȘtre un peut trop imposant, mais il est une ressource prĂ©cieuse si vous cherchez Ă comprendre pourquoi et comment interagit votre application avec le systĂšme dâexploitation.
Vous pouvez, aller voir ce tutoriel vidéo fourni par Microsoft qui vous introduira aux fonctionnalités de débogage de base et avancées de ProcMon, .
Utiliser WinDbgâ
Il est possible de déboguer les plantages et problÚmes dans le processus de rendu avec WinDbg.
Pour attacher le débogueur WinDbg à un processus :
- Ajouter l'indicateur
--renderer-startup-dialog
à la ligne de commande d'Electron. - Lancer l'application que vous comptez déboguer.
- Une boßte de dialogue va apparaßtre avec un pid: « Renderer starting with pid: 1234 ».
- Lancer WinDbg et choisissez « File > Attach to process » dans le menu de l'application.
- Saisissez le pid fourni par la boite de dialogue à l'étape 3.
- Vous constaterez que le débogueur est en pause et qu'il y a une ligne de commande dans l'application pour saisir du texte.
- Saisissez « g » dans la ligne de commande ci-dessus pour démarrer le processus à déboguer.
- Appuyez sur la touche Entrée pour continuer l'exécution du programme.
- Retournez à la boßte de dialogue et appuyez sur « ok ».