اعثر على المشكلات في البرامج التي تعمل على Elide وأبلغ عنها.
قراءة الأخطاء
elide --error-format=plain run app.jsتذهب الأخطاء البسيطة إلى stderr مع مكدّس مختصر؛ ويبقى إخراج البرنامج على stdout. ويضيف --verbose أو --debug
سجلات Elide الخاصة.
| الخيار | التأثير |
|---|---|
--abort-on-uncaught-exception | يطبع الخطأ، ثم يرفع SIGABRT (رمز الخروج 134) ليكتب نظام التشغيل ملف تفريغ الذاكرة (core dump). |
--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 bugيطبع elide agent bug عنوان URL لمتتبّع المشكلات وقالب تقرير بصيغة Markdown. اذكر فيه الأمر بالضبط، والسلوك المتوقع،
وأي تقرير انهيار إن وُجد.