Depuración de Electron
Hay muchos enfoques diferentes para depurar problemas y errores en Electron, muchos de los cuales son específicos de la plataforma.
A continuación se describen algunos de los enfoques más comunes.
Depuración genérica
Chromium contiene macros de registro que pueden ayudar a la depuración imprimiendo información a la consola en C++ y Objective-C++.
Puede usar esto para imprimir valores de variables, nombres de funciones y números de línea, entre otras cosas.
Algunos ejemplos:
LOG(INFO) << "bitmap.width(): " << bitmap.width();
LOG(INFO, bitmap.width() > 10) << "bitmap.width() is greater than 10!";
También hay diferentes niveles de gravedad de registro: INFO
, WARN
y ERROR
.
Vea logging.h en el árbol de fuentes de Chromium para más información y ejemplos.
Imprimir Stacktraces
Chromium contiene un ayudante para imprimir stack traces a la consola sin interrumpir el programa.
#include "base/debug/stack_trace.h"
...
base::debug::StackTrace().Print();
Esto le permitirá observar cadenas de llamadas e identificar posibles áreas de problemas.
Depuración de punto de interrupción
Tenga en cuenta que esto aumentará el tamaño de la construcción significativamente, ocupando alrededor de 50G de espacio en disco
Escriba lo siguiente en el archivo electron/.git/info/exclude/debug.gn
import("//electron/build/args/testing.gn")
is_debug = true
symbol_level = 2
forbid_non_component_debug_builds = false
Luego ejecutar:
$ gn gen out/Debug --args="import(\"//electron/.git/info/exclude/debug.gn\") $GN_EXTRA_ARGS"
$ ninja -C out/Debug electron
Ahora puede usar LLDB
para depuración de punto de interrupción.
Depuración específica de la plataforma
Depuración con el servidor de símbolos
Los símbolos de depuración le permiten tener mejores sesiones de depuración. They have information about the functions contained in executables and dynamic libraries and provide you with information to get clean call stacks. A Symbol Server allows the debugger to load the correct symbols, binaries and sources automatically without forcing users to download large debugging files.
Para más información sobre cómo configurar un servidor de símbolos para Electron, vea depurando con un servidor de símbolos.