Знаходьте проблеми в програмах, запущених в Elide, і повідомляйте про них.
Читання помилок
elide --error-format=plain run app.jsПрості повідомлення про помилки потрапляють у stderr із коротким стеком; вивід програми залишається в stdout.
--verbose або --debug додає власні журнали Elide.
| Прапорець | Дія |
|---|---|
--abort-on-uncaught-exception | Виводить помилку, потім надсилає SIGABRT (код виходу 134), щоб ОС записала дамп ядра. |
--redirect-warnings= | Записує попередження процесу, як-от process.emitWarning(), у FILE, а не в stderr. |
--timeout=DURATION | Зупиняє програму через DURATION (наприклад, 30s) із кодом виходу 124. |
--max-mem=SIZE | Обмежує розмір купи, наприклад 512m. Перевищення завершується ненульовим кодом виходу. |
Під’єднання налагоджувача
| Програма | Прапорець | Слухає | Клієнт |
|---|---|---|---|
| JavaScript, TypeScript, Python | --debugger=cdp | ws://127.0.0.1:1337/… | Chrome DevTools або будь-який клієнт CDP |
| JavaScript, TypeScript, Python | --debugger=dap | 127.0.0.1:4711, чекає на клієнт | Будь-який редактор із підтримкою DAP |
| Java, Kotlin | --debugger | 127.0.0.1:5005 (JDWP), призупинено | IntelliJ IDEA, VS Code, jdb |
elide run --debugger=cdp app.jsDebugger 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Відкрийте посилання devtools:// у Chrome.
elide run --debugger=dap app.js
elide run --debugger Hello.ktListening for transport dt_socket at address: 5005Змініть адресу слухача за допомогою --debugger-host і --debugger-port:
elide run --debugger=dap --debugger-port=5678 app.js
elide run --debugger=0.0.0.0:5005 Hello.ktЧисло або host:port після --debugger — це адреса JDWP, яка стосується лише Java і Kotlin. JDWP не має
автентифікації: прив’язуйте його до адрес поза loopback лише в довіреній мережі або використовуйте SSH-тунель.
Налагодження тестів
elide test --debugger
elide test --debugger=dap sample.test.mts
elide test --debugger=5005| Прапорець | Що налагоджує |
|---|---|
--debugger | Тести JavaScript через CDP і тести JVM через JDWP на 5005 |
--debugger=cdp або dap | Лише тести JavaScript |
--debugger=PORT | Лише тести JVM |
Шлях обмежує тести JavaScript одним файлом; тести JVM обмежуйте за назвою пакета. Поки налагоджувач під’єднано, файли тестів JavaScript виконуються по одному.
Вимірювання покриття
elide run --coverage app.jsПісля завершення програми Elide виводить Coverage Report із покриттям інструкцій, рядків і функцій для кожного файлу.
Покриття JavaScript і TypeScript також записується у форматі LCOV у .dev/reports/coverage/js/run/lcov.info у
проєкті, а поза проєктом — у робочому каталозі.
Профілювання часу 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 рахує виклики кожної функції. Про записи JFR, дампи купи та perf у Linux див.
Моніторинг і профілювання.
Трасування за допомогою Insights
// insight.js
insight.on("enter", (ctx) => {
console.log("enter", ctx.name);
}, { roots: true });elide run --insights=insight.js app.jsКожен вхід у функцію виводить рядок на кшталт enter fib. Події та фільтри описано в розділі
Скрипти Insight.
Повідомлення про помилку
elide info
elide agent diagnostics
elide agent bugelide agent bug виводить URL трекера задач і шаблон звіту в Markdown. Укажіть точну команду, очікувану поведінку
та звіт про збій, якщо він є.