بروب فيو
ProbeVue هو تطبيق IBM لبيئة تتبع ديناميكية خفيفة الوزن، تم تقديمها في نظام AIX الإصدار 6.1. [ 1 ] يوفر ProbeVue إمكانية فحص العمليات الجارية لإجراء تحليل إحصائي، بالإضافة إلى استرجاع البيانات من العملية المفحوصة. تسمح الطبيعة الديناميكية لـ ProbeVue باستخدامه كأداة شاملة لأداء النظام، مع الحفاظ على القدرة على التعمق في أحداث محددة للغاية ضمن عملية أو خيط معالجة واحد.
نظرًا لعدم الحاجة إلى إجراء تعديلات على العملية التي يتم فحصها [ 2 ] أو النظام والتصميم الخفيف الوزن لـ ProbeVue كأداة تتبع، فإنه مناسب للاستخدام في بيئة إنتاج حيث كانت أدوات التتبع السابقة ستكون باهظة الأداء.
وصف
يُوفّر ProbeVue سلسلة من مواصفات نقاط التحقيق، وهي أحداث محتملة يُمكن فحصها. يسمح نص برمجي مكتوب بلغة Vue للمستخدم بتعريف نقطة تحقيق، وهي عبارة عن كتلة برمجية تُسمى كتلة إجراء، تُنفّذ عند وقوع هذه الأحداث على النظام. يُمكن حصر تنفيذ كتلة الإجراء بأحداث مُحدّدة باستخدام عبارة شرطية تُوضع على نقطة التحقيق، تُسمى مُسندًا. يتبع الكود في كتلة الإجراء بنيةً شبيهة بلغة C مع مجموعة محدودة من الدوال المُدمجة.
فيما يلي مثال على فحص مُعرَّف عند دخول عملية ذات مُعرِّف العملية 123456 إلى استدعاء النظام read() . عند حدوث ذلك، سيستدعي هذا البرنامج النصي الدالة printf() المدمجة لطباعة رسالة في مخازن التتبع الخاصة به. السطر الأول في كتلة الإجراء هو تعليق على نمط لغة C، وبالتالي لن يتم تنفيذه في بيئة ProbeVue.
@@ syscall :*: read : entry when ( __pid == 123456 ) { /* هذا تعليق: العملية ذات المعرف 123456 استدعت الدالة read(); */ printf ( "تم استدعاء الدالة read(). \n " ); }يمكن كتابة وتشغيل أدوات التتبع، مثل المثال المذكور أعلاه، دون الحاجة إلى الاختبارات المكثفة المطلوبة عادةً لأنظمة الإنتاج. تحمي بيئة ProbeVue المستخدم من التعليمات البرمجية الخاطئة أو عمليات التتبع التي تستهلك موارد النظام بكثرة، والتي كانت شائعة في أدوات التتبع السابقة من IBM. توفر ميزة التجميع أثناء التشغيل في ProbeVue بيئة قوية ومخصصة لجمع البيانات.
مواصفات نقطة الفحص
توفر IBM حاليًا موفري المجسات التالية على نظام AIX 6.1: syscall وuft وinterval وtrace، بالإضافة إلى مجسات ProbeVue (BEGIN وEND). يُحدد موفر syscall نقاط مجسات لمجموعة فرعية من استدعاءات النظام المتاحة. ويمكن تعريف مجسات تتبع وظائف المستخدم (uft) لنقاط دخول الدوال المُعرّفة في برنامج C أو C++ . يجب أن تتضمن كل من مجسات syscall وuft نموذجًا أوليًا صالحًا للدالة في نص Vue البرمجي قبل الوصول إلى معلمات الدالة (لمجسات الدخول) أو قيم الإرجاع (لمجسات الخروج من syscall فقط). تعمل مجسات interval بشكل دوري ويمكن تعريفها بفواصل زمنية قدرها 100 مللي ثانية. يسمح موفر trace لـ ProbeVue بالوصول إلى نقاط التتبع التقليدية. وأخيرًا، تعمل مجسات ProbeVue المسماة BEGIN وEND عند بدء تشغيل بيئة ProbeVue وخروجها.
لغة Vue
نظرًا لأن ProbeVue مصمم كأداة لمراقبة أحداث نظام التشغيل، فإن لغة Vue تستخدم أسلوبًا قائمًا على الأحداث يُستخدم لوصف كيفية معالجة البيانات المشتقة من هذه الأحداث.
مثل معظم لغات التتبع الديناميكي الموجودة في أنظمة يونكس الأخرى، تتميز لغة Vue ببنية نحوية شبيهة بلغة C، وكثيراً ما تُستخدم في هذا السياق. تتشابه Vue مع لغة C في جوانب عديدة، لكنها تختلف عنها اختلافاً جوهرياً في طبيعتها الإجرائية . بعض أوجه الاختلاف والتشابه موضحة هنا. [ 3 ]
أنواع البيانات
نظرًا لأن ProbeVue يُستخدم لمراقبة التطبيقات المكتوبة بلغة C بشكل أساسي، فإنه يدعم جميع أنواع بيانات C بالإضافة إلى هياكل بيانات C. كما يدعم Vue أنواع البيانات String وlist وtime stamp. يُعد كل من نوعي String وlist مصفوفات ، بينما يمثل time stamp تمثيلًا عالي الدقة لنقطة زمنية محددة. ويتشابه تحويل الأنواع والترقية التلقائية للأنواع أثناء العمليات مع الأنواع المختلطة مع سلوك لغة C.
تتصرف المؤشرات إلى المصفوفات وهياكل البيانات في ProbeVue بنفس طريقة تصرفها في برنامج C، مع اختلاف رئيسي يتمثل في أن المؤشرات، عند إشارتها إلى موقع في الذاكرة، تشير إلى موقع في مساحة عملية أخرى. للوصول إلى تلك الذاكرة، من الضروري أولاً نسخ موقع الذاكرة إلى بيئة ProbeVue المحلية. إذا تم ترحيل الذاكرة إلى خارجها، فلن يتمكن ProbeVue من إحداث خطأ في الصفحة للوصول إليها. يُحدد حجم المؤشرات في C أثناء الترجمة ، بينما في ProbeVue، يُحدد بناءً على بنية التطبيق ( 32 أو 64 بت).
تُعد أنواع بيانات الفاصلة العائمة أنواع بيانات صالحة للتعيين من عملية يتم فحصها، ولكن لا يمكن استخدامها في العمليات الحسابية للفاصلة العائمة.
فئات البيانات
يستخدم Vue قواعد نطاق مشابهة للغة C، ولكنه يراعي أيضًا الطبيعة الخارجية للعديد من البيانات في المجسات. ونتيجةً لذلك، لا تتوفر جميع فئات البيانات أو تكون غير ذات صلة في جميع المجسات أو جميع أجزاء نص العرض. وفيما يلي التصنيفات الأساسية للبيانات.
- المتغيرات العامة - المتغيرات التي يكون نطاقها عبر كامل نص Vue البرمجي
- shell - متغيرات تتبع اصطلاحات shell ويتم قراءتها من بيئة Unix
- النواة - المتغيرات التي توفرها النواة
- المتغيرات المحلية - المتغيرات المحلية الخاصة بكتلة إجراء التحقيق
- متغيرات خاصة بالخيط - متغيرات محلية خاصة بخيط معين، ولكن نطاقها يمتد عبر عدة كتل إجراءات فحص
- المدخل/المخرج - المتغيرات التي يتم تعريفها بواسطة المسبار وتكون محلية له
- مُدمج - متغيرات مُعرّفة مسبقًا لها قيم ذات صلة بمسبار الإطلاق الحالي
المشغلون
تتبع عوامل Vue اصطلاحات لغة C بشكل وثيق باستثناء استخدامها مع السلاسل النصية. عند استخدامها مع السلاسل النصية، يقوم عامل الجمع (+) بعملية الربط، بينما يُستخدم عامل المساواة (==) للمقارنة.
التحكم في التدفق
لا يسمح Vue بتعريف دوال المستخدم، أو الاستدعاء الذاتي ، أو بنى التكرار ، ولكنه يوفر تعابير شرطية من نوع if-then ضمن كتلة إجراء الفحص. تمنع طبيعة ProbeVue الخفيفة سكربت Vue من تعريف عمليات تكرار مكلفة أو عمليات تفرع واسعة النطاق قد تؤدي إلى تدهور الأداء.
تتبع مبدئي
التتبع المؤقت مفهوم يسمح بتصنيف مخرجات التتبع لكتلة من التعليمات البرمجية على أنها مؤقتة. يمكن لاحقًا حفظ مخرجات هذه التعليمات البرمجية في مخازن التتبع كمخرجات مرئية، أو يمكن تجاهلها. يعمل هذا المفهوم بشكل مشابه لعناصر التحكم في المعاملات في لغة SQL .
الاستخدام
يمكن استدعاء سكربت Vue باستخدام أوامر المفسر وتعيينه كملف تنفيذي مثل سكربت shell ، أو يمكن تشغيله كمدخل لأمر ProbeVue على شكل مُعامل سطر أوامر أو إدخال stdin. [ 5 ] وبحسب الاصطلاح، فإن سكربتات Vue لها امتداد اسم الملف .e .
أوجه القصور
تفتقر لغة Vue إلى التجميعات، وتستخدم بدلاً منها نوع بيانات القائمة الذي يوفر وظائف مشابهة ولكن محدودة. يوفر المنتج المكافئ من Solaris، المسمى DTrace، نوع بيانات التجميع ومجموعة قوية من دوال التجميع لتمثيل البيانات الإحصائية. يوفر نوع بيانات القائمة دوال تجميع أساسية فقط على عنصر واحد (على عكس المصفوفات الترابطية للتجميعات التي يوفرها DTrace). يوفر نوع بيانات القائمة تبسيطًا طفيفًا مقارنةً بالاحتفاظ بالإحصائيات يدويًا، ولكنه لا يسمح بإعادة ضبط القائمة (على سبيل المثال، خلال فترة زمنية محددة) التي يمكن القيام بها بسهولة عند استخدام الملخصات اليدوية والأنواع الأساسية. وقد التزمت IBM بدعم المصفوفات الترابطية في الإصدارات المستقبلية من لغة Vue.
نظراً لطول فترة التطوير التي يستغرقها برنامج DTrace مقارنةً ببرنامج ProbeVue، فإن DTrace يحتوي على عدد أكبر بكثير من مواصفات نقاط الفحص. [ 6 ] وتخطط شركة IBM لإضافة عدد كبير من نقاط الفحص الجديدة في الإصدارات التقنية المستقبلية لنظام AIX 6.1 وفي الإصدار الرئيسي التالي من نظام AIX.
انظر أيضاً
مراجع
- ↑ "1.4: ProbeVue". IBM RedBooks: دليل الاختلافات بين إصدار IBM AIX 6.1 . 10 مارس 2008. ص 21. ISBN 0738485799.
- ↑ مدخل ProbeVue في صفحة مركز المعرفة لنظام AIX 7.1
- ↑ يمكن الاطلاع على مناقشة مفاهيم لغة Vue في قسم لغة برمجة Vue و ProbeVue: مواصفات دليل المستخدم الموسع .
- تتوفر وظائف مُعرّفة مسبقًا ضمن بيئة ProbeVue. راجع كتاب AIX 6.1 Differences RedBook أو دليل المستخدم الموسّع ProbeVue للاطلاع على قائمة بالوظائف المُعرّفة مسبقًا.
- ↑ إدخال أمر ProbeVue في صفحة مركز المعرفة لنظام AIX 6.1
- ↑ تُسمى هذه في DTrace بالموفرين.
روابط خارجية
- نظام التشغيل IBM AIX
- أدوات تصحيح الأخطاء
- برامج سطر الأوامر
