Saltar al contenido

Depuración

Depure programas de Elide: lea la salida simple de errores, conecte un depurador, mida la cobertura, perfile el tiempo de CPU, trace con scripts de Insights e informe de un error.

En esta página

Encuentre e informe de problemas en los programas que ejecuta con Elide.

Leer los errores

elide --error-format=plain run app.js

Los errores simples van a stderr con una pila corta; la salida del programa se queda en stdout. --verbose o --debug añade los registros propios de Elide.

0:09 / 0:09
OpciónEfecto
--abort-on-uncaught-exceptionImprime el error y luego lanza SIGABRT (salida 134) para que el sistema operativo escriba un volcado de memoria.
--redirect-warnings=FILEEscribe las advertencias del proceso, como process.emitWarning(), en FILE en lugar de en stderr.
--timeout=DURATIONDetiene el programa tras DURATION (por ejemplo 30s) con la salida 124.
--max-mem=SIZELimita el tamaño del heap, por ejemplo 512m. Superarlo provoca un fallo con salida distinta de cero.
0:12 / 0:12

Conectar un depurador

ProgramaOpciónEscucha enCliente
JavaScript, TypeScript, Python--debugger=cdpws://127.0.0.1:1337/…Chrome DevTools o cualquier cliente CDP
JavaScript, TypeScript, Python--debugger=dap127.0.0.1:4711, espera a un clienteCualquier editor compatible con DAP
Java, Kotlin--debugger127.0.0.1:5005 (JDWP), suspendidoIntelliJ IDEA, VS Code, jdb
elide run --debugger=cdp app.js
Debugger listening on ws://127.0.0.1:1337/<id>/inspect
For help, see: https://docs.elide.dev/guides/debugging
E.g. in Chrome open: devtools://devtools/bundled/js_app.html?ws=127.0.0.1:1337/<id>/inspect

Abra el enlace devtools:// en Chrome.

elide run --debugger=dap app.js
elide run --debugger Hello.kt
Listening for transport dt_socket at address: 5005

Cambie la dirección de escucha con --debugger-host y --debugger-port:

elide run --debugger=dap --debugger-port=5678 app.js
elide run --debugger=0.0.0.0:5005 Hello.kt

Un número o un host:port tras --debugger es una dirección JDWP y solo se aplica a Java y Kotlin. JDWP no tiene autenticación: escuche fuera de loopback solo en una red de confianza, o use un túnel SSH.

Depurar pruebas

elide test --debugger
elide test --debugger=dap sample.test.mts
elide test --debugger=5005
OpciónDepura
--debuggerPruebas de JavaScript mediante CDP y pruebas de la JVM mediante JDWP en 5005
--debugger=cdp o dapSolo pruebas de JavaScript
--debugger=PORTSolo pruebas de la JVM

Una ruta limita las pruebas de JavaScript a un archivo; las pruebas de la JVM se limitan por nombre de paquete. Mientras hay un depurador conectado, los archivos de prueba de JavaScript se ejecutan de uno en uno.

Medir la cobertura

elide run --coverage app.js

Elide imprime un Coverage Report cuando el programa termina, con las sentencias, líneas y funciones cubiertas por archivo. La cobertura de JavaScript y TypeScript también se escribe en formato LCOV en .dev/reports/coverage/js/run/lcov.info dentro del proyecto, o en el directorio de trabajo fuera de un proyecto.

Perfilar el tiempo de CPU

elide run --profiler=cputracing app.js
╭Profiler Report───────────────────────────────────────────────────────────────╮
│ Location           Root               Total        Interpreted      Compiled │
│   app.js            fib       21.89k 100.0%      21.89k 100.0%        0 0.0% │
│   app.js       :program              1 0.0%           1 100.0%        0 0.0% │
╰──────────────────────────────────────────────────────────────────────────────╯

Total cuenta las llamadas a cada función. Para grabaciones JFR, volcados del heap y perf de Linux, consulte Monitorización y perfilado.

Trazar con Insights

// insight.js
insight.on("enter", (ctx) => {
  console.log("enter", ctx.name);
}, { roots: true });
elide run --insights=insight.js app.js

Cada entrada en una función imprime una línea como enter fib. Consulte Scripts de Insight para ver los eventos y los filtros.

Informar de un error

elide info
elide agent diagnostics
elide agent bug

elide agent bug imprime la URL del gestor de incidencias y una plantilla de informe en Markdown. Indique el comando exacto, el comportamiento esperado y cualquier informe de fallo.

¿Te resultó útil esta página?