مع اقتراب العام من نهايته ، نطرح في JetBrains إصدارات "القطار البخاري" التقليدية لأدوات سطح المكتب لدينا. لقد كتبنا بالفعل عن بعضها ( WebStorm ، DataGrip ) هنا على Habré . واليوم حان الوقت لإخبارك عن تحديث بيئة التطوير عبر الأنظمة الأساسية في C و C ++ - CLion 2020.3!
باختصار عن أهمها:
- يمتلك مصحح الأخطاء الآن القدرة على فحص تفريغ الذاكرة وتشغيل التكوينات بامتيازات المسؤول. والآن يمكنك تحريك نقطة التنفيذ عبر الكود في أي اتجاه خلال جلسة تصحيح الأخطاء.
- بالنسبة لاختبار الوحدة ، أضفنا دعمًا لـ CTest ، عداء الاختبار الذي يأتي مع نموذج تصميم CMake.
- Qt Qt- UI, , Qt .
- , Makefile, CLion. CMake CMake.
- MISRA C 2012 MISRA C ++ 2008.
- والعديد من التحسينات الأخرى لتكوينات الإطلاق والتصحيح ، ودعم التحكم في الإصدار ، والتطوير عن بُعد. العديد من التحسينات الرائعة لواجهة المستخدم. و ... المعاينة التي طال انتظارها للتطوير التعاوني الجديد وخدمة البرمجة الزوجية.
يمكن تنزيل الإصدار الجديد من موقع الويب وتجربته مجانًا لمدة 30 يومًا.إذا كان لديك اشتراك نشط في CLion أو All Products Pack ، فما عليك سوى تحديث الإصدار إلى 2020.3. كتذكير ، عند شراء اشتراك سنوي لأي منتج ، ستتلقى ترخيصًا احتياطيًا دائمًا .
الآن دعنا نتحدث عن الابتكارات والتحسينات في الإصدار 2020.3 بمزيد من التفصيل.
المصحح
يمثل إصدار 2020.3 علامة فارقة في تطوير تكاملات مصحح الأخطاء في CLion. وهذا ليس من قبيل الصدفة ، لأن هذا التكامل لا يستخدمه أحد ، ولكن العديد من منتجات الشركة! CLion ، وهو مكون إضافي لـ IntelliJ Rust ، ومعاينة مبكرة لبيئة تطوير لعبة Rider for Unreal Engine . تمكنا معًا من تنفيذ العديد من الميزات الجديدة المهمة في مصحح الأخطاء.
التصحيح مع تفريغ الذاكرة
انتهت العملية بشكل غير طبيعي ، بمعنى آخر ، هل تحطمت ، تاركة وراءها تفريغ ذاكرة؟ إجراء تشغيل جديد | يتيح لك Open Core Dump ، المتاح لنظامي Linux و macOS ، فتح ملف تفريغ ذاكرة لعملية سقطت في CLion لمزيد من التصحيح:
في مربع الحوار ، تحتاج إلى تحديد المسار إلى ملف تفريغ الذاكرة ، والمسار إلى الملف برموز تصحيح الأخطاء (على سبيل المثال ، الملف القابل للتنفيذ للبرنامج مناسب إذا تم تمكين التجميع في وضع التصحيح) ، مطابقة المسار (إذا تم إنشاء الملف القابل للتنفيذ على جهاز مختلف). سيقوم CLion بعد ذلك بإنشاء تكوين لتصحيح تفريغ الذاكرة هذا الذي يمكنك تشغيله.
يمكن أن يعرض مربع الحوار قائمة بالتكوينات التي تم إنشاؤها بالفعل. يمكن أيضًا إنشاء التكوينات يدويًا من تشغيل | تحرير التكوينات. أثناء تصحيح الأخطاء باستخدام تفريغ ذاكرة ، يمكنك تحليل المعلومات حول الإطارات وفحص القيم المتغيرة وعرض حالة الذاكرة ورمز التجميع وتقييم التعبيرات وتشغيل الأوامر من وحدة تحكم مصحح الأخطاء. في الوقت نفسه ، ولأسباب واضحة ، يتم تعطيل التصحيح خطوة بخطوة ولا تتوفر نافذة إخراج العملية.
من القيود الحالية ، بالإضافة إلى عدم توفر الوظيفة الجديدة على نظام Windows الأساسي ، تجدر الإشارة إلى أنه في حالة LLDB ، لم يتم استخدام الملف الذي يحتوي على رموز تصحيح الأخطاء بعد. وإمكانيات تصحيح الأخطاء التي تم جمعها على جهاز آخر وتصحيح الأخطاء عن بُعد للمخلفات محدودة للغاية ( CPP-22736 ، CPP-22656 ).
تشغيل وتصحيح بامتيازات المسؤول
ظهر مربع اختيار جديد في تكوينات التشغيل والتصحيح من هذا الإصدار - لبدء التكوين بامتيازات المسؤول. التخصيص مدعوم لأنواع عديدة من التكوينات: CMake ، Makefile ، Gradle Native ، Custom Build ، CTest.
لاستخدام الميزة الجديدة التي كانت أكثر ملاءمة من الناحية العملية ، قمنا بكتابة برنامج خفي خاص يظل مرخصًا للعروض كمسؤول عند تشغيل هذه التكوينات لفترة زمنية محددة:
المزيد حول عمل هذه الميزة الجديدة ، يرجى قراءة هنا (باللغة الإنجليزية).
تحديد نقطة التنفيذ
قد يكون مستخدمو Visual Studio على دراية بميزة مفيدة مثل تغيير نقطة التنفيذ أثناء جلسة تصحيح الأخطاء. لأي شخص آخر: تخيل أنك تريد تخطي تنفيذ حلقة كاملة ، وتغيير فرع العبارة الشرطية ، والعودة بضع خطوات في تدفق تنفيذ البرنامج مباشرةً أثناء جلسة تصحيح الأخطاء. الآن ، لدى CLion إجراء جديد Set Execution Point إلى Cursor لهذا الغرض ، أو يمكنك إعادة ترتيب السهم الأصفر يدويًا إلى السطر المطلوب مباشرةً في المحرر:
دعنا نحجز أن مثل هذا الإجراء يمكن أن يكسر البرنامج (على سبيل المثال ، إذا فاتك الأمر لتهيئة متغير). ولكن إذا تم استخدامه بمهارة ، فسيتيح لك تصحيح أخطاء تطبيقك بكفاءة عالية.
نصائح تفاعلية
تحتوي جميع IDEs المستندة إلى IntelliJ في الإصدار 2020.3 تقريبًا على نصائح تفاعلية وساعات مدمجة. حتى قبل 2020.3 ، أثناء جلسة تصحيح الأخطاء ، كان بإمكانك رؤية قيم المتغيرات مباشرةً في المحرر. أصبحت هذه النصائح الآن تفاعلية - يمكنك توسيع المتغير ورؤية قيمة جميع حقوله: يمكنك
أيضًا إضافة تعبير عشوائي للعد والعرض مباشرة في المحرر (بجوار سطر التعليمات البرمجية المطلوب). تبين أن هذا أكثر ملاءمة من الساعات العادية (التي تظهر باستمرار في نافذة مصحح الأخطاء) عندما يكون للمتغيرات المستخدمة في التعبير معنى فقط في مكان معين في الكود (على سبيل المثال ، المتغيرات المحلية).
هل تريد رؤية الميزات الجديدة قيد التشغيل؟ جربه بنفسك أو شاهد هذا الفيديو من محامي المطور لدينا:
وحدة التجارب
فيما يتعلق بأطر عمل اختبار الوحدة ، تدعم CLion اختبار Google و Catch (2) و Boost.Test و Dictest. وفقًا لاستطلاع النظام البيئي للتنمية لعام 2020 ، يستخدم 31٪ من مطوري C ++ اختبار Google. لذلك ، أخذنا الوقت الكافي لتحسين عرض نتائج تشغيل Google Test في CLion:
- لقد تعلمنا كيفية بناء شجرة اختبار في وقت واحد ، حتى قبل تنفيذ جميع الاختبارات
- بدأ عرض قيم معلمات الاختبار (للاختبارات ذات المعلمات).
- قدمنا رمزًا خاصًا لتمييز الاختبارات المعطلة (المعطلة) في الشجرة.
- والأهم من ذلك ، قاموا بتسريع عملية العثور على الاختبارات في المشروع بشكل كبير.
طلب مستخدمونا (على وجه الخصوص ، هنا في Habré) بنشاط إضافة دعم لـ CTest ، عداء اختبار يأتي مع نموذج مشروع CMake. لم يكن الأمر سهلاً للغاية ، لأن CTest هي نفسها أداة إطلاق ، وليست مجرد إطار عمل آخر ، وبالتالي فهي لا تتناسب جيدًا مع واجهة برمجة التطبيقات الحالية. لكننا فعلنا ذلك في النهاية! يجد CLion الآن تلقائيًا اختبارات CTest في المشروع ، وينشئ تكوينات التشغيل والتصحيح لهم ، ويبني شجرة تعرض نتائج الاختبار. يمكنك حتى تصحيح أخطاء اختباراتك - سيؤدي ذلك إلى قيام CLion بإجراء الاختبار ، وليس عملية ctest.
بالنسبة للقيود ، تجدر الإشارة إلى أن CLion يدعم CTest 3.14 والإصدارات الأحدث. بالإضافة إلى ذلك ، إذا تم تشغيل كتلة اختبار من إطار عمل مدعوم بالفعل (Google Test و Catch (2) و Boost.Test و Dectest) كاختبار CTest ، فسيكون لمثل هذه الكتلة إدخال واحد في شجرة النتائج (أي أنها تتوافق مع اختبار واحد).
فيديو تقليدي من Phil Nash حول تحسينات اختبار الوحدة:
كيو تي المشاريع
نرى أن CLion غالبًا ما يكتب المشاريع باستخدام إطار عمل Qt. وعلى الرغم من أننا لا نخطط لإنشاء مصمم واجهات خاص بنا أو دعم نموذج مشروع qmake ، فقد قررنا مع ذلك القيام بشيء ما لتحسين تجربة المستخدم في CLion في هذا الاتجاه.
مشروع واجهة المستخدم وقوالب الفصل
يقدم مربع الحوار الخاص بإنشاء مشروع جديد الآن نوعين جديدين - Qt Console Executable و Qt Widgets Executable:
حدد القيم الضرورية - ينشئ CLion مشروع CMake مبتدئًا من النوع المحدد ، والآن أصبح أبسط تطبيق مصغّر أو وحدة تحكم في جيبك! بالمناسبة ، عند التحدث عن CMake و Qt ، يقترح Qt6 تثبيت بعض المكتبات عبر Conan (يحتوي CLion أيضًا على مكون إضافي ) وبناءها عبر CMake و Ninja. أليس هناك سبب لتجربة CLion لتطوير Qt؟
بالمناسبة ، عند إضافة فئة Qt UI جديدة ، يمكن لـ CLion إنشاء ثلاثة ملفات في وقت واحد ( ملفات .ui وملفات الفئة). للقيام بذلك ، حدد إجراء QT UI Class في قائمة إضافة ملف جديد.
العمل مع كود كيو تي
كود Qt هو كود C ++ عادي بشكل عام ، لكن له مراوغات خاصة به. على سبيل المثال ، يحتوي Qt على نمط معين لاستيراد ملفات الرأس. على سبيل المثال ، يمكن تمكينه بشكل صحيح
QtCore/qurl.h
، ولكن سيكون من الأصح استخدامه
QUrl
. يتم دعم النمط الآن أثناء الاستيراد التلقائي في CLion: تتفهم
وظيفة إكمال الكود الآن عندما يكون من الضروري تقديم متغيرات من الإشارات فقط أو فتحات فقط لكيانات Qt الرئيسية:
هذا مناسب ، لأن القائمة المنسدلة تعرض فقط المتغيرات التي تناسب المعنى ، وليس كل تلك التي تطابق عن طريق الحروف المكتوبة.
ما هي ميزة Qt التي تفتقر إليها شخصيًا في CLion؟ اكتب في التعليقات!
نماذج التصميم في CLion
نضيف تدريجيًا دعمًا لمزيد والمزيد من أنواع المشاريع باستخدام Makefile في CLion (نحتفظ بقائمة من المشاريع المختبرة هنا ). في الإصدار 2020.3، قمنا بدعم المشاريع التي تستخدم ccache ، libtool ، الأبله ، slibtool و jlibtool الأدوات . هذه هي مشاريع ZFS و PHP و Mono و Curl وغيرها. يتم إنشاء تكوينات التشغيل وتصحيح الأخطاء للأهداف من Makefile ذي المستوى الأعلى تلقائيًا. بالإضافة إلى ذلك ، بالنسبة لمشاريع Makefile ، أصبح من الممكن إعادة ترجمة ملف منفصل دون الحاجة إلى إعادة بناء المشروع بأكمله (في التخطيط الافتراضي - Ctrl + Shift + F9 في Windows / Linux و LinuxF9 على macOS).
لمشاريع CMakeيمكنك الآن تعطيل ملفات تعريف CMake غير المستخدمة مؤقتًا. يكون هذا مفيدًا بشكل خاص إذا كان المشروع يحتوي على عدة ملفات تعريف تم تكوينها مرة واحدة للتطوير عن بُعد (قد يتم تعطيل بعضها مؤقتًا) أو لسلاسل أدوات مختلفة (لا يتم استخدامها دائمًا معًا). عندما يتم تعطيل مثل هذه الملفات الشخصية ، يتم تقليل وقت تحميل المشروع بشكل ملحوظ. في السابق ، كان يجب حذف ملفات التعريف ، ولكن الآن يمكنك ببساطة إيقاف تشغيلها. يمكن القيام بذلك من إعدادات ملف التعريف في الإعدادات / التفضيلات | البناء والتنفيذ والنشر | CMake أو من مربع حوار تنزيل CMake:
لمزيد من التفاصيل حول التحسينات لمشاريع Qt وفي نماذج المشروع ، راجع حديث مؤيد المطورين.
معايير ميسرة
يشمل عملاؤنا العديد من المطورين والممثلين المدمجين من صناعة السيارات. بالنسبة لهم ، يعتبر اعتماد الكود وفقًا لمعايير MISRA جزءًا مهمًا من عملية التطوير. لا يمكننا المساعدة في الحصول على الشهادة نفسها ، لكننا قادرون تمامًا على الإشارة إلى التناقضات المحتملة مع معايير MISRA في مرحلة مبكرة من التطوير! في إصدار CLion 2020.3 ، بدأنا في إضافة الشيكات لمعايير MISRA C 2012 و MISRA C ++ 2008 إلى محلل الكود الثابت المدمج:
ليست كلها مدعومة ؛ يمكن العثور على قائمة كاملة في هذه الصفحة . يعد إجراء عمليات التفتيش
أمرًا بسيطًا للغاية: سنضيف المزيد من شيكات MISRA في المستقبل. من الممكن أن تظهر عمليات التحقق من AUTOSAR أيضًا.
Code With Me هي أداة تطوير تعاوني جديدة
هل يمارس فريقك البرمجة الزوجية؟ ماذا عن أداة لمشاركة الكود؟ أطلقنا مؤخرًا برنامج الوصول المبكر لأداة التطوير التعاوني الجديدة ، Code With Me. في الأساس ، هذا مكون إضافي متاح لجميع IDEs لسطح المكتب تقريبًا (باستثناء JetBrains Rider و DataGrip حتى الآن). يتيح لك ولفريقك التعاون في المشاريع مباشرة من IDEs الخاص بك. لتجربة Code With Me ، قم بتثبيت المكون الإضافي في التفضيلات / الإعدادات | الإضافات.
يمكنك قراءة المزيد حول إمكانيات المكون الإضافي في منشورات المدونة هذه . لا يزال برنامج Code With Me قيد التطوير النشط. إذا واجهت أي مشاكل في استخدامه ، فالرجاء إخبارنا بذلك هنا .
وأكثر بكثير
تشمل التحسينات المهمة الأخرى ما يلي:
- الآن ، يمكن استخدام برنامج نصي لإعداد البيئة التي سيتم فيها تشغيل تكوين التشغيل / التصحيح. بالإضافة إلى ذلك ، يمكنك الآن تحرير تكوينات التشغيل / التصحيح مباشرة أثناء فهرسة المشروع.
- لقد قمنا بتوسيع إمكانات الإكمال التلقائي باستخدام مقتطفات Clang. سوف يساعدون في تصحيح ليس فقط الكلمات الرئيسية ، ولكن أيضًا بناء جملة التعبيرات الصحيحة:
- يمكن الآن مزامنة نظام ألوان CLion مع سمة نظام التشغيل لديك. لتمكين هذه الميزة ، انتقل إلى الإعدادات / التفضيلات | المظهر والسلوك | المظهر وحدد خيار مزامنة مع نظام التشغيل.
- , (Drag&Drop). Open in Right Split, Project, Recent Files Search Everywhere.
- Git-. VCS , VCS (, Git). Search Everywhere Git. , , .
هذا كل شيء بالنسبة لنا. يسعدنا أنك قرأت حتى النهاية. شكرا للاهتمام! اترك أسئلتك وأفكارك واقتراحاتك في التعليقات - نحن مهتمون بما تعتقده ، ويسعدنا دائمًا تقديم المساعدة!
CLion فريق
الدافع لتطوير