Aller au contenu principal

Débogage d'Electron

Il y a de nombreuses approches pour déboguer les problèmes et bogues dans Electron, beaucoup étant spécifiques à la plate-forme.

Certaines des approches les plus courantes sont décrites ci-dessous.

Débogage générique

Chromium contient des macros de logging qui peuvent aider à déboguer en affichant des informations dans la console en C++ et Objective-C++.

Vous pouvez les utiliser pour afficher, entre autres, les valeurs variables, les noms de fonctions et les numéros de ligne.

Quelques exemples :

LOG(INFO) << "bitmap.width(): " << bitmap.width();

LOG(INFO, bitmap.width() > 10) << "bitmap.width() is greater than 10!";

Il y a aussi différents niveaux de gravité de logging : INFO, WARN, et ERROR.

Pour plus d'informations et d'exemples voir: logging.h dans l'arborescence source de Chromium .

Affichage des Stacktraces

Chromium contient une utilitaire d'aide pour afficher des traces de piles sur la console sans interrompre le programme.

#include "base/debug/stack_trace.h"
...
base::debug::StackTrace().Print();

Cela vous permettra d’observer les chaînes d’appels et d’identifier les zones pouvant être problématiques.

Débogage avec points d’arrêts

Notez que cela augmentera considérablement la taille de la compilation, et prendra environ 50G d'espace disque

Écrire le fichier suivant dans electron/.git/info/exclude/debug.gn

import("//electron/build/args/testing.gn")
is_debug = true
symbol_level = 2
forbid_non_component_debug_builds = false

Exécutez ensuite :

$ gn gen out/Debug --args="import(\"//electron/.git/info/exclude/debug.gn\") $GN_EXTRA_ARGS"
$ ninja -C out/Debug electron

Vous pouvez maintenant utiliser LLDB pour le débogage avec points d'arrêt.

Débogage spécifique à la plateforme

Débogage avec le serveur de symboles

Les symboles de déboggage vous permettent d’améliorer vos sessions de déboggage. Ils apportent des informations sur les fonctions contenues dans les exécutables et les bibliothèques dynamiques et vous fournissent des informations pour obtenir des piles d’appels claires. Un serveur de symboles permet au débogueur de charger automatiquement les bons symboles, fichiers binaires et les sources sans obliger les utilisateurs à télécharger de volumineux fichiers de débogage.

For more information about how to set up a symbol server for Electron, see debugging with a symbol server.