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.