تصحيح أخطاء رمز المنصّة

تدمج أداة استوديو Android for Platform (ASfP) تصحيح الأخطاء في المنصات المتعددة اللغات حول علامة التبويب ربط في نافذة أداة تصحيح الأخطاء:

  • انقر على تشغيل (Run) > الربط بعملية Android (Attach to Android Process) (Control+Alt+A) لربط مصحّح أخطاء Java أو مصحّح الأخطاء الأصلي (الذي يتضمّن LLDB) أو كليهما بأي تطبيق أو عملية نظام قيد التشغيل على جهاز فعلي أو جهاز Cuttlefish الظاهري.
  • افحص كل مكتبة مشترَكة تم تحميلها (.so) ورقم تعريف الإصدار المكوّن من ثمانية أحرف بتنسيق ELF في لوحة المكتبات قبل الربط، مع التأكّد من تطابق رموز تصحيح الأخطاء المحلية باستخدام رموز علامة الاختيار ضمن out/target/product/<device>/symbols.
  • يمكنك إدارة المتطلبات الأساسية للجهاز من شريط الأدوات: فلترة النتائج باستخدام عرض عمليات النظام، والنقر على جهاز الجذر لتشغيل adb root (يظهر الجهاز مزوّد بإذن الوصول إلى الجذر عند التفعيل)، والنقر على تفعيل JDWP لتفعيل JDWP على إصدارات userdebug.
  • يمكنك ضبط نقاط توقّف شرطية ونقاط توقّف للاستثناءات، وعرض قيم المتغيّرات المضمّنة في المحرّر، واستخدام إزالة الإطارات والتنفيذ الذكي خطوة بخطوة، وفحص أنواع C++ وRust المنظَّمة في وقت التشغيل.

قبل استخدام أداة تصحيح الأخطاء، أنشئ هدف lunch ليتوفّر فهرس رموز out/target/product/<device>/symbols/.build-id المحلي، ثم شغِّل صورة جهاز متوافقة أو ثبّتها.

تصحيح أخطاء Java والأخطاء المزدوجة في Java والرمز البرمجي الأصلي

لتصحيح أخطاء تطبيق Java أو Kotlin أو تطبيق نظام (مثل com.android.messaging أو "الإعدادات" أو SystemUI) أو عملية تستدعي JNI ورموز C++‎ أو Rust البرمجية، اتّبِع الخطوات التالية:

  1. ضبط نقاط توقّف في ملفات رموز المصدر Java أو Kotlin أو C أو C++‎ أو Rust
  2. انقر على تشغيل (Run) > الربط بعملية Android (Attach to Android Process) (Control+Alt+A). يفتح ASfP علامة التبويب إرفاق المثبَّتة داخل نافذة أدوات تصحيح الأخطاء.
  3. اختَر جهاز الاختبار من القائمة المنسدلة للأجهزة. إذا لم يكن JDWP مفعَّلاً في إصدار userdebug، انقر على تفعيل JDWP، وسيضبط ASfP قيمة persist.debug.dalvik.vm.jdwp.enabled=1 ويعيد تشغيل الجهاز. عندما يكون الزر نشطًا، يعرض تم تفعيل JDWP مع إجراء إيقاف JDWP عند النقر بزر الماوس الأيمن.
  4. اختَر العملية المستهدَفة من الجدول (تعرض عمليات Java وART رمز فنجان قهوة).
  5. في أسفل علامة التبويب ربط، اختَر أداة تصحيح أخطاء Java أو أداة تصحيح أخطاء الرمز البرمجي الأصلي أو كليهما. يؤدي تحديد كليهما إلى فتح علامتَي تبويب مرتبطتَين في نافذة أداة تصحيح الأخطاء: <process> (<pid>) لبرنامج LLDB المضمّن و<process> (<pid>)-jdwp لبرنامج Java. وترتبط دورات حياتهما معًا، لذا يؤدي إيقاف أي منهما إلى إيقاف كليهما.
  6. انقر على إرفاق وتفاعَل مع التطبيق على جهازك للوصول إلى نقاط التوقّف.

علامات تبويب تصحيح الأخطاء المزدوجة في Java والرمز البرمجي الأصلي المرتبطة بعلامة التبويب &quot;ربط&quot;

تصحيح أخطاء عملية النظام (C وC++) والتحقّق من الرموز

لتصحيح أخطاء برامج النظام أو طبقات تجريد الأجهزة أو خدمات النظام (مثل android.hardware.bluetooth-service.cuttlefish أو surfaceflinger أو audioserver)، أكمِل الخطوات التالية:

  1. افتح تشغيل > الربط بعملية Android (Control+Alt+A). إذا كان شريط الأدوات يعرض الجهاز الجذر، انقر عليه لتشغيل ASfP adb root وعرض الجهاز الجذر.
  2. انقر على عرض عمليات النظام في شريط الأدوات العلوي، ثم فلتر العملية المستهدَفة.
  3. تأكيد رموز تصحيح الأخطاء المحلية في لوحة "المكتبات": يؤدي اختيار عملية إلى ملء جدول المكتبات بكل مكتبة مشتركة بتنسيق ELF (.so) تم تحميلها في العملية وأول ثمانية أحرف سداسية عشرية من رقم تعريف الإصدار بتنسيق ELF. تطابق ASfP كل رقم تعريف إصدار مع out/target/product/<device>/symbols (يجب توفُّر symbols/.build-id لحلّ المكتبات داخل حِزم APEX):
    • تعرض المكتبات التي تم التحقّق منها رمز علامة صح. ضَع مؤشر الماوس على أي صف تم حله لمعاينة مسار رمز .debug المحلي الكامل.
    • تعرض المكتبات التي لم يتم حلّها بدون رموز محلية مطابقة رمز تحذير.
  4. رصد العمليات غير المستندة إلى Java: عند اختيار عملية C++‎ أو Rust (المميّزة برمز سداسي الأضلاع C)، يخفي ASfP برنامج تصحيح الأخطاء في Java ويعرض لا تتوفّر إمكانية تصحيح الأخطاء في Java، هذه العملية غير مستندة إلى Java مع إبقاء المربّع برنامج تصحيح الأخطاء Native محدّدًا.
  5. اضبط نقاط توقّف في ملفات المصدر C أو C++ أو Rust، وانقر على ربط (Attach)، ثم شغِّل مسار الرمز البرمجي على الجهاز.

علامة التبويب المرفقة التي تعرض جدول &quot;المكتبات&quot; ومعرّفات الإصدارات بتنسيق ELF وعلامات الاختيار الخاصة بالرموز المحلية

تصحيح أخطاء رمز Rust البرمجي

تصحّح "أدوات Android Studio لنظام Android" أخطاء رمز منصة Rust باستخدام مصحّح أخطاء LLDB المضمّن نفسه المستخدَم مع C وC++. ولا يلزم استخدام محوّل خارجي أو إعداد خادم يدويًا، لأنّ "أدوات Android Studio لنظام Android" تستخدم lldb-dap من سلسلة الأدوات المجمّعة وتحمّل تلقائيًا أدوات الطباعة المنسّقة لـ Rust من الإصدارات المسبقة المجمّعة في AOSP، وبالتالي تعرض الأنواع العادية، مثل String وVec وHashMap وOption، قيمًا منظَّمة في لوحة المتغيرات.

ربط عملية Rust قيد التشغيل على جهاز

اتّبِع الخطوات الواردة في تصحيح أخطاء عملية النظام (C وC++): افتح تشغيل > الربط بعملية Android، وتأكَّد من وضع علامة في المربّع الجهاز مزوّد بإذن الوصول إلى الجذر وظهور علامة اختيار بجانب الرموز المحلية في اللوحة المكتبات، وأبْقِ المربّع أداة تصحيح الأخطاء الأصلية محدّدًا، ثم انقر على ربط. تظهر إطارات حزمة التكديس في Rust وC أو C++‎ معًا في جلسة تصحيح الأخطاء نفسها.

تصحيح أخطاء وحدة rust_test أو rust_test_host

  1. افتح ملف Android.bp الذي يعرّف هدف rust_test أو rust_test_host وانقر على رمز تشغيل في الهامش بجانب نوع الوحدة.
  2. انقر على Debug '<ModuleName>'‎. ينشئ ASfP الهدف ويشغّل اختبار الثنائي ضمن LLDB على جهازك المضيف أو الجهاز المتصل، ويتوقف عند نقاط توقّف Rust.
  3. لتصحيح أخطاء دالة اختبار واحدة أو تخصيص أوامر بدء تشغيل LLDB، افتح تشغيل > تعديل الإعدادات (Run > Edit Configurations)، واختَر إعداد اختبار Soong (Soong Test) الذي تم إنشاؤه، واضبط الطريقة (Method) أو وسِّع خيارات أداة تصحيح الأخطاء (Debugger). لمزيد من المعلومات حول خيارات إعداد اختبار Soong، يُرجى الاطّلاع على اختبار رمز النظام الأساسي باستخدام atest.

تصحيح أخطاء الرمز البرمجي لمنصة Rust باستخدام أدوات عرض المتغيرات المنظَّمة في &quot;استوديو Android&quot; لـ &quot;ألعاب على الأجهزة المحمولة&quot;