سؤال

نحن نخطط لاستخدام الشظية كمحلل رمز لقاعدة رمز C لدينا. لكننا لم نحاول أبدًا أداة الشظية من قبل ، لذا نريد مدخلاتك على Benifts و Pros و Cons.

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

المحلول

اقرأ منشور المدونة هذا و هذه الشرائح للحصول على نظرة عامة سريعة على ما يمكن أن تفعله من أجلك.

نصائح أخرى

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

فيما يلي ورقة بيضاء من معهد Sans الذي قد يثير اهتمامك:http://www.sans.org/reading_room/whitepapers/securecode/secure-software-development-code-analysis-tools_389

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

جربها: splint hello.c.

كما اقترح وافلمان أن المحللين الثابتين ينتجون الكثير من الإنذارات الخاطئة. لقد وجدت منع إعطاء أجهزة إنذار أفضل من العصفور. هذان اثنان نستخدمه للتحليل الثابت.

مثال على إنذار خاطئ نموذجي وإنذار جيد هو:

bar (char **output) 
{
  *output = malloc(100);
}
foo()
{
  char *output=NULL;
  bar(&output)   
}

في شريط الوظيفة ، سيقوم بالإبلاغ عن تسرب الذاكرة لإخراج المؤشر. في الوظيفة FOO ، تقارير الإشراف الفارغ عندما يتم استدعاء شريط الوظائف. ولكن مع ذلك ، إنه خيار بين إيجاد إنذار حقيقي بين 100 من الإنذارات الخاطئة.

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

تبحث الأداة عن نمط يمكن أن يكون أخطاء. الميزة هي أن الأداة قد تجد الأخطاء الكامنة والعيوب هي أنها قد تجد مجموعة كاملة على إيجابيات كاذبة أيضًا.

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