Saltar al contenido principal

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, WARNy 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.

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