سؤال

هل من الممكن استخدام gcov لاختبار التغطية للتطبيقات متعددة الخيوط؟

لقد قمت بإجراء بعض الاختبارات التافهة لقاعدة الأكواد الخاصة بنا، ولكن سيكون من الجيد أن يكون لدينا فكرة عن التغطية التي نحققها.إذا لم يكن gcov مناسبًا، فيمكن لأي شخص أن يوصي بأداة بديلة (ربما oprofile)، مع بعض الوثائق الجيدة للبدء.

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

المحلول

لقد استخدمنا بالتأكيد gcov للحصول على معلومات التغطية لتطبيقنا متعدد الخيوط.

تريد الترجمة باستخدام gcc 4.3 والذي يمكنه القيام بتغطية التعليمات البرمجية الديناميكية.

قمت بتجميع مع -fprofile-arcs -ftest-coverage الخيارات، وسيقوم الكود بإنشاء ملفات .gcda والتي يمكن لـ gcov معالجتها بعد ذلك.

نحن نقوم ببناء منتجنا بشكل منفصل، ونجمع التغطية لذلك، ونجري اختبارات الوحدة واختبارات الانحدار.

وأخيرًا نستخدم lcov لإنشاء صفحات نتائج HTML.

نصائح أخرى

يعمل Gcov بشكل جيد مع التطبيقات متعددة الخيوط.تم إجراء تسلسل لبنية الأجهزة بشكل صحيح حتى تحصل على بيانات تغطية ذات دقة جيدة.

أود أن أقترح استخدام gcov بالتزامن مع lcov.سيعطيك هذا تقارير رائعة بدءًا من المشروع الكامل وصولاً إلى ملفات المصدر الفردية.

يمنحك lcov أيضًا نسخة HTML مرمزة بالألوان بشكل جيد من المصدر الخاص بك حتى تتمكن من تقييم هفوات التغطية الخاصة بك بسرعة.

لم أستخدم gcov لعمل تغطية متعددة الخيوط.ومع ذلك، في نظام التشغيل MacOS، تتعامل أداة Shark من Apple مع عدة سلاسل رسائل.إنه في المقام الأول ملف تعريف، ولكن يمكنه تقديم معلومات التغطية أيضًا.

http://developer.apple.com/tools/sharkoptimize.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top