سؤال

ما هو رمز الحيوي التحليل ؟

كيف تختلف من تحليل رمز ثابت (أي ماذا يمكن أن الصيد لا يمكن أن تكون اشتعلت في ثابت)?

لقد سمعت من حدود فحص الذاكرة تحليل - ما هذه ؟

ما هي الأشياء الأخرى يتم التحقق باستخدام ديناميكية من التحليل ؟

-آدم

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

المحلول

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

مزايا التحليل الديناميكي

  • هي قادرة على الكشف عن تبعيات غير الممكن الكشف عن في تحليل ثابت.Ex.:ديناميكية تبعيات باستخدام انعكاس, حقن التبعية, تعدد الأشكال.
  • يمكن جمع الزمنية المعلومات.
  • يتعامل مع ريال إدخال البيانات.خلال تحليل ثابت من الصعب المستحيل أن تعرف ما هي الملفات التي سيتم تمريرها كمدخل ماذا طلبات ويب سوف تأتي المستخدم انقر فوق ، وما إلى ذلك.

عيوب التحليل الديناميكي

  • قد تؤثر سلبا على أداء التطبيق.
  • لا يمكن أن تضمن تغطية كاملة من التعليمات البرمجية المصدر ، كما أنه يعمل على أساس تفاعل المستخدم أو التلقائي الاختبارات.

الموارد

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

نصائح أخرى

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

من ويكيبيديا تعريف دينامية برنامج تحليل:

ديناميكية برنامج التحليل تحليل الحاسوب من البرامج التي يتم يؤديها مع تنفيذ برامج بنيت من هذا البرنامج على الحقيقي أو الظاهري المعالج (تحليل أداء دون تنفيذ البرامج كما هو معروف تحليل رمز ثابت).ديناميكية البرنامج أدوات التحليل قد تتطلب تحميل خاصة المكتبات أو حتى recompilation من التعليمات البرمجية للبرنامج.

طلبت تفسيرا جيدا "حدود فحص الذاكرة تحليل قضايا".

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

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

ما ديناميكية الأجهزة أداة مثل الذاكرة السلامة المدقق لا, هو ربط بعض البيانات الوصفية مع كل مؤشر (مثل نوع من الشيء الذي مؤشر "نقاط", و إذا كان صفيف array حدود) ، ومن ثم تحقق في وقت التشغيل ، أي يصل عبر مؤشرات المصفوفات ، إذا كانت مجموعة لا تنتهك.أداة تعديل البرنامج الأصلي لجمع البيانات حيث يتم إنشاء (على سبيل المثال ، على الدخول إلى نطاقات الذي المصفوفات هي المعلنة ، أو نتيجة malloc العملية ، إلخ.) ويعدل البرنامج في كل مجموعة المراجع (كتب كل من x[ص] حيث إما x أو y هو مجموعة مؤشر القيمة نوع من نوع لا يتجزأ ، كما ل *(x+y)!) للتحقق من الوصول.الآن إذا كان البرنامج يعمل و ينفذ خارج حدود الوصول إلى الاختيار يمسك خطأ وأنها ذكرت في المقام الأول حيث أنه يمكن أن يتم الكشف عن.[إذا كنت تفكر في ذلك ، عليك أن تدرك أجهزة جمع البيانات الوصفية والتحقق من أن تكون ذكي جدا, للتعامل مع جميع البديل الحالات لغة مثل C قد يكون.في الواقع من الصعب جعل هذا العمل تماما).

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

هذا هو غاية الأمثلة الجيدة على التحليل الديناميكي أداة:اختبار يحدث في وقت التشغيل.

حدود التحقق

وهذا يعني وقت الشيكات من مجموعة بالوصول.خلافا ج دعه يعمل نهج يصل الذاكرة و مؤشر الحساب ، لغات أخرى مثل Java أو C# في الواقع تحقق ما إذا كان صفيف يحتوي على عنصر واحد يحاول الوصول.

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