Aller au contenu principal

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 :

  1. Ajouter l'indicateur --renderer-startup-dialog Ă  la ligne de commande d'Electron.
  2. Lancer l'application que vous comptez déboguer.
  3. Une boßte de dialogue va apparaßtre avec un pid: « Renderer starting with pid: 1234 ».
  4. Lancer WinDbg et choisissez « File > Attach to process » dans le menu de l'application.
  5. Saisissez le pid fourni par la boite de dialogue à l'étape 3.
  6. 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.
  7. Saisissez « g » dans la ligne de commande ci-dessus pour démarrer le processus à déboguer.
  8. Appuyez sur la touche Entrée pour continuer l'exécution du programme.
  9. Retournez à la boßte de dialogue et appuyez sur « ok ».