سؤال

الكود الخاص بي هو مزيج من القطع والقطع المختلفة من الكود الأقدم.

أرغب في محو جميع الوظائف أبدًا من أجل الحفاظ على الكود بسيطًا.

هل Klocwork هو الأداة؟ كيف فعلتها؟

شكرًا،

موشيه.

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

المحلول

يمكنك استخدام -p أو -pg خيارات ل gcc لإضفاء إضافة رمز إلى المقدمة والخاتمة لكل وظيفة بحيث تتم كتابة قاعدة بيانات ملف تعريف عند تنفيذ البرنامج. الأداة prof يستخدم لتحليل الإخراج من -p و gprof ل -pg. تنتج هذه الأدوات تقارير توضح الوظائف التي تم استخدامها ، وعدد المكالمات ، وعدد الوقت الذي قضيته في كل منهما. سوف تكون الوظائف غير المستخدمة مفقودة من قاعدة بيانات الملف الشخصي.

يمكنك أيضا استخدام gcov للحصول على تقرير عن خطوط الكود التي تم تنفيذها بالفعل. سيتم تنفيذ الوظائف التي لم تسمى أبداً 0 مرات ....

نصائح أخرى

سوف يجد Klocwork وظيفة/طرق غير مستخدمة. هناك حزمة مدقق خاصة يمكنك تنزيلها على my.klocwork.com (إذا كان لديك حساب) من شأنه أن يمنحك هذه الفحصات الخاصة.

أنا لست على دراية بـ Klocwork ، لكن gcc لديه خيار التحذير -Wunused-function التي تكتشف معظم الوظائف غير المصالحة. -Wunused-function هو جزء من -Wall.

Klockwork لا يكتشف الوظائف غير المصالحة. تستخدم لتحليل ثابت فقط.

يمكنك التحقق من ذلك مثل هذا:

foo()
{
   char *a;
   a = malloc(100);
}
bar()
{
   char a[100];
}

main()
{
   bar();
}

من المحتمل أن هذا من شأنه أن يبلغ عن تسرب في وظيفة foo التي لا مبرر لها بالفعل. ومع ذلك ، كما اقترح Schot ، يمكنك النظر في خيارات البرمجيات.

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