مدقق الحدود

BoundsChecker أداة لفحص الذاكرة والتحقق من صحة استدعاءات واجهة برمجة التطبيقات (API)، تُستخدم في تطوير برامج C++ باستخدام Microsoft Visual C++ . طُوّرت هذه الأداة من قِبل شركة NuMega في أوائل التسعينيات. وعندما استحوذت شركة Compuware على NuMega عام 1997، أصبحت BoundsChecker جزءًا من مجموعة أدوات DevPartner Studio . وفي عام 2009، اشترت Micro Focus خط الإنتاج من Compuware. [ 1 ] ومن الأدوات المشابهة لها Purify و Insure++ و Valgrind .

يمكن تشغيل BoundsChecker في وضعين متميزين: ActiveCheck ، الذي سيعمل مع أي تطبيق كما هو، أو FinalCheck ، الذي يستخدم أدوات القياس المضافة إلى التطبيق عند إنشائه.

يُجري ActiveCheck تحليلًا أقل تدخلاً، ويراقب جميع استدعاءات التطبيق لمكتبة وقت تشغيل لغة C ، وواجهة برمجة تطبيقات Windows ، واستدعاءات كائنات COM . ومن خلال مراقبة تخصيصات الذاكرة وتحريرها ، يمكنه اكتشاف تسريبات الذاكرة وتجاوزاتها. كما تُمكّن مراقبة استدعاءات واجهة برمجة التطبيقات وCOM برنامج ActiveCheck من فحص المعلمات، وقيم الإرجاع، والاستثناءات، والإبلاغ عن الاستثناءات عند حدوثها. ويمكن أيضًا اكتشاف حالات تعطل الخيوط من خلال مراقبة كائنات التزامن واستدعاءاتها، مما يوفر اكتشافًا فعليًا ومحتملًا لحالات التعطل.

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

الوظائف العامة

كشف التسرب

  • تتبع الذاكرة - يتم تتبع تخصيص الذاكرة وتحريرها طوال فترة تشغيل التطبيق، ويتم إنشاء تقرير في نهاية الجلسة يوضح كتل الذاكرة التي خصصها كود المستخدم والتي لا تزال مخصصة عند انتهاء العملية بشكل طبيعي. عند استخدام أدوات تحليل المُصرّف، يمكن الإبلاغ عن بعض تسريبات الذاكرة مبكرًا، عندما يخرج آخر مؤشر يشير إلى كتلة ذاكرة مخصصة عن نطاقه أو يتم استبداله بقيمة أخرى. ومن خلال الآليات نفسها، يتم الإبلاغ عن محاولات استخدام مؤشرات إلى ذاكرة تم تحريرها مسبقًا.
  • تتبع كائنات COM - يتم تتبع إنشاء كائنات COM وتدميرها طوال فترة تشغيل التطبيق، ويتم إنشاء تقرير نهاية الجلسة يوضح الكائنات التي تظل نشطة في وقت إنهاء العملية العادية.
  • تتبع الموارد - تتم مراقبة إنشاء وتدمير مقابض كائنات النظام (مثل مقابض الملفات، ومقابض GDI وما إلى ذلك)، ويتم إنشاء تقرير نهاية الجلسة يوضح المقابض المتبقية في وقت إنهاء العملية العادية.

التحقق من صحة استدعاء واجهة برمجة التطبيقات

تُراقَب استدعاءات واجهة برمجة التطبيقات (API)، ويتم التحقق من معلمات الإدخال الخاصة بها قبل تنفيذ استدعاءات الدوال، مما يُنذر بالمشاكل المحتملة. كما تُراقَب رموز الإرجاع الخاصة بواجهة برمجة التطبيقات، ويتم تسجيل رموز الأخطاء. يقتصر هذا التحقق على واجهات برمجة التطبيقات المعروفة لدى BoundsChecker، والتي يبلغ عددها حاليًا عدة آلاف. في حال تفعيل تتبع الذاكرة، يمكن للتحقق من استدعاءات واجهة برمجة التطبيقات الاستفادة من المعلومات المُجمّعة لإجراء تحقق أكثر دقة من مؤشرات الذاكرة.

اكتشاف تجاوز سعة الذاكرة

عند تفعيل كلٍ من تتبع الذاكرة والتحقق من صحة واجهة برمجة التطبيقات، يصبح من الممكن اكتشاف أنواع عديدة من حالات تجاوز سعة المصفوفات والمخازن المؤقتة. وتعزز أدوات المُصرّف هذه القدرة. وهذه هي الميزة التي سُمّي المنتج باسمها في الأصل.

تسجيل استدعاءات واجهة برمجة التطبيقات

يمكن تسجيل استدعاءات واجهة برمجة التطبيقات (API) وطريقة COM ووظائف .NET Interop بالتفصيل، مع ملاحظة قيم معلمات الاستدعاء وقيم الإرجاع الناتجة. إلا أن هذه الميزة محدودة الفائدة، إذ غالبًا ما تؤدي التطبيقات المعقدة إلى زيادة حجم سجل الجلسة بشكل كبير.

تحليل .NET

يمكن إنشاء تقرير يحلل عملية .NET Interop وجمع البيانات المهملة ونشاط المُنهي طوال فترة العملية قيد الاختبار.

تحليل حالة الجمود

يمكن اكتشاف أنواع معينة من العناق المميت وحالات الحبس الأخرى المماثلة.

التوافق

يدعم الإصدار الحالي (12.1.40) من BoundsChecker التطبيقات الأصلية 32 بت و64 بت على نظام التشغيل Windows 10 (تحديث ربيع 2020). لم يعد يدعم بيئات MS-DOS، وWindows 16 بت، و Windows 2000 ، وWindows XP، و Windows 7. يتكامل هذا المنتج، كجزء من DevPartner Studio ، مع تحديث 2017 (15.9.33) وتحديث 2019 (16.9) [ 2 ] .

اعتبارًا من مارس 2021، لم يتم دعم ميزة تحليل التعطل في تطبيقات X64.

الانتقادات

  • الترخيص - منذ استحواذ شركة مايكرو فوكس إنترناشونال على البرنامج، تعرض لانتقادات بسبب آليات الترخيص المعقدة التي يجب التعامل معها عند تثبيته واستخدامه. على سبيل المثال، جميع المراجعات على موقع المتجر الإلكتروني الذي يبيع المنتج (باستثناء مراجعة واحدة من أحد مطوريه) تصف المنتج بأنه غير قابل للاستخدام عمليًا بسبب طريقة إدارة الترخيص. [ 3 ]
  • السرعة - تُعد هذه الأداة متطفلة نسبيًا، ويمكنها إبطاء التطبيق قيد الاختبار من 50 إلى 300 ضعف. وكلما زاد عدد الميزات المستخدمة في وقت واحد، زاد التباطؤ. وينطبق هذا بشكل خاص عند استخدام أدوات تحليل أداء المُصرّف.
  • العملة - على الرغم من أن المنتج يعمل مع العديد من إصدارات Windows و Microsoft Visual Studio، إلا أنه لم تتم إضافة قاعدة بيانات التحقق من صحة واجهة برمجة التطبيقات بشكل كبير منذ عام 2006. ولا تتم مراقبة واجهات برمجة التطبيقات الأحدث بشكل عام.
  • قابلية النقل - يدعم البرنامج نظام التشغيل مايكروسوفت ويندوز وبرنامج مايكروسوفت فيجوال ستوديو فقط. لا يوجد دعم لأنظمة التشغيل أو المترجمات الأخرى.
  • الضوضاء - يتم الإبلاغ عن العديد من النتائج التي، على الرغم من صحتها، إلا أنها غير مفيدة. وأكثرها شيوعًا هي أخطاء واجهة برمجة التطبيقات (API). من الطبيعي تمامًا أن تفشل بعض استدعاءات واجهة برمجة التطبيقات. ويمكن إخفاء هذه النتائج.

سجل الإصدارات

  • 12.0 - مارس 2020 - إصدار جديد مصمم لأحدث إصدار من بيئة تشغيل Visual C/C++ من مايكروسوفت. بالإضافة إلى العديد من التغييرات الداخلية الأخرى. [ 4 ]
  • 11.5.1 - سبتمبر 2020 - يستخدم الآن برنامج تثبيت مجموعة أدوات WiX.
  • 11.4 HF5 - فبراير 2020 - دعم Visual Studio 2019 16.4.5. آخر إصدار يدعم Windows 7 أو الإصدارات الأقدم، أو Visual Studio 2015 أو الإصدارات الأقدم.
  • 11.4 HF4 - أكتوبر 2019 - دعم تحديث Windows 10 2019 Fall Update و Visual Studio 2019 16.3.6.
  • 11.4 HF3 - مايو 2019 - دعم تحديث الربيع لنظام التشغيل Windows 10 لعام 2019 و Visual Studio 2019 16.0.3.
  • 11.4 HF2 - ديسمبر 2018 - دعم تحديث Windows 10 2018 Fall Update و Visual Studio 2017 15.9.4.
  • 11.4 - نوفمبر 2017 - دعم تحديث Windows 10 Fall Creator's Update لعام 2017.
  • 11.3 HF5 - أبريل 2017 - دعم Visual Studio 2017.
  • 11.3 - يوليو 2015 - دعم نظام التشغيل Windows 10 و Visual Studio 2015.
  • 11.2 - يناير 2014 - دعم لأنظمة التشغيل Windows 8.1 و Windows 8.0 و Visual Studio 2013.
  • 11.1 - أبريل 2013 - ترجمة إلى اللغة الصينية (باستثناء المساعدة عبر الإنترنت). إصلاحات متنوعة للأخطاء.
  • 11.0 - سبتمبر 2012 - دعم كامل لبرنامج Visual Studio 2012، وتحسين الأداء والدقة.
  • 10.6 - أبريل 2012 - نموذج ترخيص جديد، مدقق تحديث المنتج، دعم أولي لـ Visual Studio 2012، وأداة شريط النظام مع مراقب النشاط.
  • 10.5 - فبراير 2011 - يدعم تطبيقات X64 على نظام التشغيل Windows Vista X64 والإصدارات الأحدث.
  • 10.0 - أبريل 2010 - يدعم Visual Studio 2010.
  • 9.1 - أكتوبر 2009 - يدعم نظام التشغيل ويندوز 7.
  • 9.0 - سبتمبر 2008 - يدعم Visual Studio 2005 و 2008.
  • 8.2 - مايو 2007 - آخر إصدار مع دعم كامل لـ Visual Studio 6.0 و Visual Studio .NET 2003.
  • 6.0 - 1998 - الإصدار الأول بعد استحواذ شركة Compuware على NuMega.
  • 5.0 - مارس 1997
  • 4.0 - 1996 - تم تقديم ميزة التحقق من صحة واجهة برمجة التطبيقات (API).
  • 2.0 لنظام التشغيل DOS - مارس 1991 [ 5 ]

انظر أيضاً

مراجع

  1. الموقع الرسمي لشركاء تطوير مايكرو فوكس
  2. "المواصفات الفنية لشركاء التطوير" . مؤرشف من الأصل بتاريخ 20-09-2017 . تم الاطلاع عليه بتاريخ 18-05-2017 .
  3. "تطبيقات تحليل الأكواد والمقاييس - الأكثر مبيعًا" .
  4. "أفضل 20 أداة للكشف عن تسرب الذاكرة للغة جافا وسي++" . مساعدة اختبار البرمجيات . تم الاطلاع عليه بتاريخ 20 فبراير 2022 .
  5. إنفوورلد، 4 مارس 1991، صفحة 19