انتقل إلى المحتوى

تصحيح الأخطاء

صحّح أخطاء برامج Elide: اقرأ إخراج الأخطاء البسيط، وأرفق مصحّحًا، وقِس التغطية، وحلّل زمن CPU، وتتبّع التنفيذ بسكربتات Insight، وأبلغ عن خلل.

في هذه الصفحة

اعثر على المشكلات في البرامج التي تعمل على Elide وأبلغ عنها.

قراءة الأخطاء

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

تذهب الأخطاء البسيطة إلى stderr مع مكدّس مختصر؛ ويبقى إخراج البرنامج على stdout. ويضيف --verbose أو --debug سجلات Elide الخاصة.

0:09 / 0:09
الخيارالتأثير
--abort-on-uncaught-exceptionيطبع الخطأ، ثم يرفع SIGABRT (رمز الخروج 134) ليكتب نظام التشغيل ملف تفريغ الذاكرة (core dump).
--redirect-warnings=FILEيكتب تحذيرات العملية، مثل process.emitWarning()، إلى FILE بدلًا من stderr.
--timeout=DURATIONيوقف البرنامج بعد DURATION (مثل 30s) برمز الخروج 124.
--max-mem=SIZEيحدّ حجم الكومة، مثل 512m. وتجاوزه يُنهي البرنامج برمز خروج غير صفري.
0:12 / 0:12

إرفاق مصحّح

البرنامجالخياريستمع علىالعميل
JavaScript و TypeScript و Python--debugger=cdpws://127.0.0.1:1337/…Chrome DevTools أو أي عميل CDP
JavaScript و TypeScript و Python--debugger=dap127.0.0.1:4711، وينتظر عميلًاأي محرر يدعم DAP
Java و Kotlin--debugger127.0.0.1:5005 (JDWP)، متوقف مؤقتًاIntelliJ 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

افتح رابط devtools:// في Chrome.

elide run --debugger=dap app.js
elide run --debugger Hello.kt
Listening 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. اذكر فيه الأمر بالضبط، والسلوك المتوقع، وأي تقرير انهيار إن وُجد.

هل كانت هذه الصفحة مفيدة؟