يتضمّن NDK نصًا برمجيًا لنظام التشغيل يُسمى ndk-gdb
لبدء
جلسة تصحيح أخطاء برمجية أصلية من سطر الأوامر (كان يُستخدم سابقًا gdb ولكن يتم استخدام lldb الآن).
على المستخدمين الذين يفضّلون استخدام واجهة مستخدم رسومية قراءة مستندات تصحيح الأخطاء في IDE
Android Studio بدلاً من ذلك.
المتطلبات
لكي يعمل تصحيح الأخطاء الأصلي من سطر الأوامر، يجب استيفاء المتطلبات التالية:
- أنشئ تطبيقك باستخدام نص
ndk-build
البرمجي. لا يتيح نصndk-gdb
استخدام الطريقة القديمةmake APP=<name>
للإنشاء. - فعِّل تصحيح أخطاء التطبيق في ملف
AndroidManifest.xml
من خلال تضمين عنصر<application>
الذي يضبط السمةandroid:debuggable
علىtrue
. - أنشئ تطبيقك ليتوافق مع الإصدار 2.2 من نظام التشغيل Android (المستوى 8 من واجهة برمجة التطبيقات لنظام التشغيل Android) أو إصدار أحدث.
- تصحيح الأخطاء على جهاز أو محاكي يعمل بالإصدار 2.2 من نظام التشغيل Android أو إصدار أحدث
لأغراض تصحيح الأخطاء، لا يهمّ مستوى واجهة برمجة التطبيقات المستهدَف الذي تحدّده في ملف
AndroidManifest.xml
. - تطوير تطبيقك في بيئة تشغيل يونكس على نظام التشغيل Windows، استخدِم Cygwin
أو الإصدار التجريبي من
ndk-gdb-py
Python. - استخدِم الإصدار 3.81 من GNU Make أو إصدارًا أحدث.
الاستخدام
لتشغيل نص ndk-gdb
البرمجي، انتقِل إلى دليل التطبيق أو أي دليل ضمنه. مثلاً:
cd $PROJECT $NDK/ndk-gdb
في هذه الحالة، يشير $PROJECT
إلى الدليل الجذر لمشروعك، ويشير $NDK
إلى
مسار تثبيت NDK.
عند استدعاء ndk-gdb
، يتم ضبط الجلسة للبحث عن ملفات المصدر
وإصدارات الرموز/تصحيح الأخطاء للمكتبات الأصلية التي تم إنشاؤها. عند الربط بنجاح بأحد خطوات
التطبيق، يعرض ndk-gdb
سلسلة طويلة من رسائل الخطأ، مع الإشارة إلى أنّه لا يمكنه
العثور على مكتبات النظام المختلفة. هذا أمر طبيعي، لأنّ الجهاز المضيف لا يحتوي على
إصدارات الرموز أو تصحيح الأخطاء من هذه المكتبات على جهازك المستهدَف. يمكنك تجاهل هذه الرسائل
بأمان.
بعد ذلك، يعرض ndk-gdb
طلب lldb المعتاد.
يمكنك التفاعل مع ndk-gdb
بالطريقة نفسها التي تتفاعل بها مع lldb.
اطّلِع على [خريطة أوامر GDB إلى LLDB](https://lldb.llvm.org/use/map.html) المفيدة إذا كان
ليس لديك دراية بـ lldb ولكنك تعرف gdb.
تعالج ndk-gdb
العديد من حالات الخطأ، وتعرض رسالة خطأ معلوماتية إذا عثرت على مشكلة. وتشمل عمليات التحقّق هذه التأكّد من استيفاء الشروط التالية:
- للتحقّق من أنّ حزمة ADB متوفّرة في المسار
- يتحقّق من أنّه تم الإعلان عن تطبيقك على أنّه قابل لتصحيح الأخطاء في بيانه.
- التحقّق من أنّ التطبيق المثبَّت على الجهاز والذي يحمل اسم الحزمة نفسه يمكنه أيضًا تصحيح الأخطاء
يبحث ndk-gdb
تلقائيًا عن عملية تطبيق قيد التنفيذ، ويعرض
خطأً في حال عدم العثور على عملية. ومع ذلك، يمكنك استخدام الخيار --start
أو
--launch=<name>
لبدء نشاطك تلقائيًا قبل جلسة debugging. لمزيد من المعلومات، يُرجى الاطّلاع على الخيارات.
الخيارات
للاطّلاع على قائمة كاملة بالخيارات، اكتب ndk-gdb --help
في سطر الأوامر. يعرض الجدول 1
عددًا من العلامات الأكثر استخدامًا، بالإضافة إلى أوصاف موجزة.
الجدول 1: خيارات ndk-gdb الشائعة وأوصافها
بدءًا من ndk-gdb
مع تحديد هذا الخيار، يتم تشغيل أول نشاط قابل للإطلاق مُدرَج
في ملف بيان تطبيقك. استخدِم --launch=<name>
لبدء الخطوة التالية التي يمكن إطلاقها. لتفريغ قائمة الأنشطة التي يمكن إطلاقها، يمكنك تشغيل --launch-list
من سطر الأمر.
Option | الوصف> |
---|---|
--verbose |
يطلب هذا الخيار من نظام الإنشاء طباعة معلومات مفصّلة عن إعداد جلسة debugging
التلقائية. ولا يكون ذلك ضروريًا إلا لتحديد مشاكل تصحيح الأخطاء عندما يتعذّر على أداة تصحيح الأخطاء الاتصال بالتطبيق، وتكون رسائل الخطأ التي يعرضها |
--force |
يتم إيقاف ndk-gdb تلقائيًا إذا رصدت أنّه سبق أن كانت هناك جلسة تصحيح أخطاء برمجي مدمَجة
قيد التشغيل على الجهاز نفسه. يؤدي هذا الخيار إلى إنهاء الجلسة الأخرى واستبدالها بجلسة جديدة.
يُرجى العِلم أنّ هذا الخيار لا يؤدي إلى إنهاء تشغيل التطبيق الفعلي الذي يتم تصحيح أخطاءه، ويجب إنهاء تشغيله
بشكل منفصل. |
--start |
عند بدء تطبيق |
--launch=<name> |
يشبه هذا الخيار |
--launch-list |
يُنشئ هذا الخيار المفيد قائمة بجميع أسماء الأنشطة القابلة للإطلاق المتوفّرة فيملف بيان
التطبيق. يستخدم |
--project=<path> |
يحدِّد هذا الخيار دليل مشروع التطبيق. يكون ذلك مفيدًا إذا كنت تريد تشغيل ملف برمجي بدون الحاجة إلى الانتقال أولاً إلى دليل المشروع. |
--port=<port> |
يستخدم تطبيق |
--adb=<file> |
يحدّد هذا الخيار الملف القابل للتنفيذ لأداة adb. ولا يكون ذلك ضروريًا إلا إذا لم تضبط المسار لتضمين هذا الملف التنفيذي. |
-d -e -s <serial> |
تتشابه هذه العلامات مع أوامر adb التي تحمل الأسماء نفسها. اضبط هذه العلامات إذا كان لديك عدة أجهزة أو محاكيات متصلة بالجهاز المضيف. في ما يلي معانيها:
بدلاً من ذلك، يمكنك تحديد متغيّر البيئة |
--exec=<file> -x <file> |
يطلب هذا الخيار من |
--nowait |
أوقِف مؤقتًا رمز Java إلى أن يتم ربط أداة تصحيح الأخطاء. قد يؤدي تفعيل هذا الخيار إلى عدم رصد مصحِّح الأخطاء نقاط التوقف المبكرة. |
--tui
-t |
فعِّل واجهة المستخدم النصية إذا كانت متاحة. |
--gnumake-flag=<flag> |
هذا الخيار هو علامة إضافية (أو علامات) يتم تمريرها إلى نظام
|
ملاحظة: الخيارات الثلاثة الأخيرة في هذا الجدول مخصّصة فقط لإصدار ndk-gdb
المكتوب بلغة
Python.