هذا هو مدقق الامتثال للأمر الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
مدقق الامتثال abi - أداة لمقارنة توافق ABI لمكتبة C / C ++ المشتركة
الإصدارات
الوصف
الاسم:
مدقق التوافق مع ABI (abi-Compliance-checker) تحقق من التوافق مع الإصدارات السابقة لـ a
واجهة برمجة تطبيقات مكتبة C / C ++
الوصف:
ABI Compliance Checker (ABICC) هي أداة لفحص الملف الثنائي الخلفي و
التوافق على مستوى المصدر لمكتبة C / C ++ مشتركة. تتحقق الأداة من ملفات الرأس
والمكتبات المشتركة (* .so) للإصدارات القديمة والجديدة ويحلل التغييرات في API و
ABI (ABI = API + مترجم ABI) الذي قد يكسر التوافق الثنائي و / أو على مستوى المصدر:
التغييرات في مكدس الاستدعاء ، وتغييرات v-table ، والرموز المحذوفة ، والحقول المعاد تسميتها ، وما إلى ذلك.
قد يؤدي عدم التوافق الثنائي إلى تعطل التطبيقات أو سلوكها غير الصحيح
تم إنشاؤها باستخدام إصدار قديم من المكتبة إذا تم تشغيلها على مكتبة جديدة. مصدر
قد يؤدي عدم التوافق إلى حدوث أخطاء في إعادة الترجمة باستخدام إصدار مكتبة جديد.
الأداة مخصصة لمطوري مكتبات البرامج والمشرفين على صيانة
أنظمة التشغيل المهتمين بضمان التوافق مع الإصدارات السابقة ، أي السماح
التطبيقات القديمة للتشغيل أو لإعادة تجميعها بإصدارات مكتبة أحدث.
كما يمكن استخدام الأداة من قبل موردي البرامج المستقلين (ISV) للتحقق من قابلية نقل التطبيقات إلى التطبيقات الجديدة
إصدارات المكتبة. يمكن أن تؤخذ المشكلات التي تم العثور عليها في الاعتبار عند تكييف ملف
تطبيق لإصدار مكتبة جديد.
هذه الأداة مجانية: يمكنك إعادة توزيعها و / أو تعديلها تحت
شروط GNU LGPL أو GNU GPL.
الاستعمال:
abi-الامتثال checker [خيارات]
EXAMPLE:
abi- الامتثال المدقق -Lib اسم -قديم OLD.xml -جديد جديد.xml
OLD.xml و NEW.xml عبارة عن واصفات XML:
1.0
/ path1 / to / header (s) / / path2 / to / header (s) /
/ path1 / to / library (ies) / / path2 / to / library (s) /
معلومات والخيارات:
-h| -مساعدة
اطبع هذه التعليمات.
-i| -معلومات
طباعة معلومات كاملة.
-v| -النسخة
طباعة معلومات الإصدار.
- تفريغ
اطبع إصدار الأداة (1.99.14) ولا تفعل أي شيء آخر.
يمكنك تحويل أي لحظة سعيدة إلى ذكرى ثمينة وخالدة – احتفظ بها على شكل صورة أو مقطع فيديو باستخدام الكاميرا الخلفية المضمنة. ومن خلال اتصال Bluetooth، يمكنك مشاركة الملفات ذات المحتوى العزيز على قلبك مع أجهزة المقربين منك. والخيارات:
-l| -lib | -اسم المكتبة
اسم المكتبة (بدون نسخة).
- د 1|-قديم | -o PATH
واصف نسخة المكتبة الأولى (القديمة). قد يكون واحدًا مما يلي:
1. واصف XML (ملف VERSION.xml):
1.0
/ path1 / to / header (s) / / path2 / to / header (s) /
/ path1 / to / library (ies) / / path2 / to / library (s) /
2. تفريغ ABI الناتج عن تفريغ الخيار 3. دليل مع رؤوس و / أو المشتركة
مكتبات 4. ملف رأس واحد
إذا كنت تستخدم أنواعًا واصفًا من 2 إلى 4 ، فيجب عليك تحديد أرقام الإصدارات
مع -v1 و -v2 خيارات أيضا.
لمزيد من المعلومات ، يرجى الاطلاع على:
http://ispras.linuxbase.org/index.php/Library_Descriptor
- د 2| -جديد | -ن طريق
واصف نسخة المكتبة الثانية (الجديدة).
تفريغ| -Dump-abi PATH
إنشاء مكتبة تفريغ ABI لموصف XML للإدخال. يمكنك نقله إلى أي مكان
وتمرير بدلاً من الواصف. كما يمكن استخدامه لتصحيح أخطاء الأداة.
الإصدارات المدعومة من ABI dump: 2.0 <= V <= 3.2
EXTRA والخيارات:
-تطبيق| -مسار التطبيق
يسمح هذا الخيار للشخص بتحديد التطبيق الذي يجب التحقق منه
قابلية النقل إلى إصدار المكتبة الجديد.
-استاتيك-ليبس
تحقق من المكتبات الثابتة بدلاً من المكتبات المشتركة. ال قسم من
يجب أن يشير واصف XML إلى موقع المكتبات الثابتة.
مسار -gcc PATH
المسار إلى برنامج التحويل البرمجي عبر GCC لاستخدامه بدلاً من GCC (المضيف) المعتاد.
-gcc- بادئة اختصار
بادئة سلسلة أدوات دول مجلس التعاون الخليجي.
خيارات -gcc خيارات
خيارات المترجم الإضافية.
-سروت DIR
حدد الدليل الجذر البديل. ستبحث الأداة عن تضمين المسارات في
دلائل DIR / usr / include و DIR / usr / lib.
-v1| -النسخة 1 NUM
حدد أول إصدار للمكتبة خارج الواصف. هذا الخيار مطلوب إذا كنت
فضلوا نوع واصف بديل (انظر - د 1 اختيار).
بشكل عام ، يجب عليك تحديده في واصف XML:
VERSION
-v2| -النسخة 2 NUM
حدد إصدار المكتبة الثاني خارج الواصف.
-vnum NUM
حدد إصدار المكتبة في ملف تفريغ ABI الذي تم إنشاؤه. ال قسم من
سيتم الكتابة فوق واصف إدخال XML في هذه الحالة.
-s| -المحافظة
تعامل مع جميع تحذيرات التوافق على أنها مشاكل. أضف عددًا من الخطورة "المنخفضة"
مشاكل القيمة المرجعة للأداة.
-رؤساء فقط
تحقق من ملفات الرأس بدون مكتبات مشتركة. من السهل تشغيلها ، ولكنها قد توفر ملف
تقرير توافق منخفض الجودة مع ايجابيات خاطئة وبدون الكشف عن
الرموز المضافة / المحذوفة.
بدلاً من ذلك ، يمكنك كتابة كلمة "لا شيء" إلى ملف قسم في
واصف XML:
لا شيء
-عرض-retval
إظهار نوع إرجاع الرمز في التقرير.
-قائمة الرموز PATH
يسمح هذا الخيار للشخص بتحديد ملف بقائمة من الرموز (الأسماء المشوهة بتنسيق
C ++) التي يجب التحقق منها. لن يتم التحقق من الرموز الأخرى.
-قائمة الأنواع PATH
يسمح هذا الخيار للفرد بتحديد ملف بقائمة من الأنواع التي يجب أن تكون
التحقق. لن يتم فحص الأنواع الأخرى.
-رموز التخطي PATH
قائمة الرموز التي لا ينبغي التحقق منها.
أنواع التخطي PATH
قائمة الأنواع التي لا ينبغي التحقق منها.
-قائمة الرؤساء PATH
الملف مع قائمة الرؤوس التي يجب فحصها / تفريغها.
-رؤوس التخطي PATH
الملف مع قائمة ملفات الرأس ، التي لا ينبغي التحقق منها.
-رأس اسم
تحقق / تفريغ ABI لهذا الرأس فقط.
-مقالب الاستخدام
قم بعمل تفريغ لنسختين من المكتبة وقارن بين عمليات التفريغ. يجب أن يزيد هذا
أداء الأداة وتقليل استخدام ذاكرة النظام.
-نوستدينك
لا تبحث في دلائل النظام القياسية لدول مجلس التعاون الخليجي عن ملفات الرأس.
نظام التفريغ اسم -سروت DIR
ابحث عن جميع المكتبات المشتركة وملفات الرأس في دليل DIR ، وأنشئ XML
واصفات وعمل تفريغات ABI لكل مكتبة. يمكن أن تكون مجموعة نتائج تفريغ ABI
مقارنة (- أنظمة CMP) مع الآخر الذي تم إنشاؤه لإصدار آخر من التشغيل
من أجل التحقق من توافقها. لا تنسى أن تحدد
عبر دول مجلس التعاون الخليجي الخيار إذا كان نظامك المستهدف يتطلب إصدارًا معينًا من GCC
مترجم (يختلف عن دول مجلس التعاون الخليجي المضيفة). سيتم إنشاء تفريغ ABI للنظام من أجل:
sys_dumps / الاسم / القوس
نظام التفريغ DESCRIPTOR.xml
نفس الخيار السابق ولكنه يأخذ واصف XML للنظام الهدف على أنه
الإدخال ، حيث يجب أن تصفها:
/ * الأقسام الأساسية * /
/ * اسم النظام * /
/ * قائمة المسارات إلى ملفات الرأس و / أو
الدلائل مع ملفات الرأس ، واحد لكل سطر * /
/ * قائمة المسارات إلى المكتبات المشتركة و / أو
الدلائل مع مكتبات مشتركة ، واحد في كل سطر * /
/ * أقسام اختيارية * /
/ * قائمة الدلائل المراد البحث عنها
لملفات الرأس لإنشاء مسارات متضمنة تلقائيًا ، واحد لكل سطر * /
/ * قائمة الدلائل المراد البحث عنها
للمكتبات المشتركة لحل التبعيات ، واحد لكل سطر * /
/ * قائمة الدلائل مع الأدوات المستخدمة
للتحليل (GCC toolchain) ، واحد لكل سطر * /
/ * بادئة سلسلة أدوات دول مجلس التعاون الخليجي.
أمثلة:
arm-linux-gnueabi arm-none-symbianelf * /
/ * خيارات دول مجلس التعاون الخليجي الإضافية ، خيار واحد لكل سطر * /
-معلومات النظام DIR
يجب استخدام هذا الخيار مع نظام التفريغ خيار تفريغ ABI من التشغيل
أنظمة وتهيئة عملية الإغراق. يمكنك العثور على عينة في العبوة:
الوحدات / الأهداف / {unix، symbian، windows}
أنظمة CMP - د 1 sys_dumps / NAME1 / ARCH - د 2 sys_dumps / NAME2 / ARCH
قارن بين نظامي تفريغ ABI. قم بإنشاء تقارير التوافق لكل مكتبة و
تقرير HTML شائع بما في ذلك ملخص نتائج الاختبار لجميع المكتبات المحددة.
سيتم إنشاء التقرير إلى:
sys_compat_reports / NAME1_to_NAME2 / ARCH
-قائمة الشلب PATH
الملف الذي يحتوي على قائمة بالمكتبات التي يجب أن يتم تفريغها بواسطة ملف نظام التفريغ خيار
أو يجب فحصها بواسطة أنظمة CMP الخيار.
- التالي| - ممتد
إذا كان من المفترض أن يتم استخدام مكتبتك "أ" بواسطة مكتبة أخرى "ب" وتريد التحكم فيها
ABI لـ B ، إذن يجب عليك تمكين هذا الخيار. ستتحقق الأداة من التغييرات
في جميع أنواع البيانات ، حتى لو لم يتم استخدامها من قبل أي وظيفة في المكتبة أ. مثل
أنواع البيانات ليست جزءًا من مكتبة ABI ، ولكنها قد تكون جزءًا من ABI لـ B
مكتبة.
المخطط القصير هو:
التطبيق C (معطل) -> lib B (معطل ABI) -> lib A (ثابت ABI)
-q| -هادئ
طباعة جميع الرسائل إلى الملف بدلاً من stdout و stderr. المسار الافتراضي (يمكن أن يكون
تغيير من قبل -log- المسار اختيار):
سجلات / run.log
-المعتاد
طباعة نتائج التحليل (تقارير التوافق وتفريغ ABI) إلى stdout بدلاً من
إنشاء ملف. سيسمح هذا بتوصيل البيانات إلى برامج أخرى.
-شكل التقرير FMT
تغيير تنسيق تقرير التوافق. التنسيقات:
htm - تنسيق HTML (افتراضي) xml - تنسيق XML
-تفريغ-شكل FMT
تغيير شكل تفريغ ABI. التنسيقات:
perl - تنسيق البيانات :: Dumper (افتراضي) xml - تنسيق XML
-xml
الاسم المستعار لـ: --شكل التقرير=XML or - تفريغ الشكل=XML
-لانغ لانج
اضبط لغة المكتبة (C أو C ++). يمكنك استخدام هذا الخيار إذا لم تتمكن الأداة من ذلك
الاكتشاف التلقائي للغة. قد يكون هذا الخيار مفيدًا للتحقق من رؤوس مكتبة C
(- لانج=C) في - الرؤوس فقط or --وسعوا أساليب.
-قوس قوس
اضبط بنية المكتبة (x86 ، x86_64 ، ia64 ، arm ، ppc32 ، ppc64 ، s390 ، إلخ.). ال
يكون الخيار مفيدًا إذا لم تتمكن الأداة من اكتشاف البنية الصحيحة للمدخلات
شاء.
-الثنائية| -بن | -ابي
إظهار مشاكل التوافق "الثنائي" فقط. إنشاء تقرير إلى:
التوافق_reports / LIB_NAME / V1_to_V2 / abi_compat_report.html
-source| -src | -api
إظهار مشاكل توافق "المصدر" فقط. إنشاء تقرير إلى:
التوافق_reports / LIB_NAME / V1_to_V2 / src_compat_report.html
- تتأثر بحدود مما سيحدث
الحد الأقصى لعدد الرموز المتأثرة المدرجة تحت وصف التغيير
اكتب في التقرير.
أخرى والخيارات:
-اختبار
قم بإجراء الاختبارات الداخلية. قم بإنشاء نسختين ثنائيتين غير متوافقتين من عينة مكتبة و
قم بتشغيل الأداة للتحقق من توافقها. يتيح هذا الخيار للفرد التحقق مما إذا كان
تعمل الأداة بشكل صحيح في البيئة الحالية.
- تفريغ الاختبار
اختبار القدرة على إنشاء وقراءة ومقارنة عمليات تفريغ ABI.
-ديبوغ
وضع تصحيح الأخطاء. اطبع معلومات التصحيح على الشاشة. حفظ مراحل التحليل الوسيطة
في دليل التصحيح:
تصحيح / LIB_NAME / VERSION /
ضع في اعتبارك أيضًا استخدام --أحمق خيار تصحيح أخطاء الأداة.
متوافق مع CPP
إذا كانت ملفات الرأس الخاصة بك مكتوبة بلغة C ويمكن تجميعها بواسطة G ++
مترجم (على سبيل المثال لا تستخدم كلمات C ++ الأساسية) ، ثم يمكنك إخبار الأداة عن هذا و
تسريع التحليل.
-cpp- غير متوافق
عيّن هذا الخيار إذا كانت ملفات رأس الإدخال C تستخدم الكلمات الأساسية C ++.
-p| -بارامس باث
مسار الملف مع أسماء معلمات الوظيفة. يمكن استخدامه لتحسين التقرير
عرض ما إذا كانت ملفات رأس المكتبة لا تحتوي على أسماء معلمات. تنسيق الملف:
func1;param1;param2;param3 ... func2;param1;param2;param3 ...
-ارلباث PATH
استبدل وحدات الماكرو {RELPATH} بـ PATH في واصف XML المستخدم لتفريغ المكتبة
أبي (انظر تفريغ اختيار).
-Relpath1 PATH
استبدل وحدات الماكرو {RELPATH} بـ PATH في واصف XML الأول (- د 1).
-Relpath2 PATH
استبدل وحدات الماكرو {RELPATH} بـ PATH في واصف XML الثاني (- د 2).
-مسار التفريغ PATH
حدد مسار ملف * .abi.tar.gz أو * .abi حيث يتم إنشاء تفريغ ABI. تقصير:
abi_dumps / LIB_NAME / LIB_NAME_VERSION.abi.tar.gz
-نوع
تمكين فرز البيانات في عمليات تفريغ ABI.
-مسار التقرير PATH
مسار تقرير التوافق. تقصير:
المواطنون / LIB_NAME / V1_to_V2 / المواطنة
-بين-تقرير-المسار PATH
المسار إلى تقرير التوافق "الثنائي". تقصير:
التوافق_reports / LIB_NAME / V1_to_V2 / abi_compat_report.html
مسار تقرير -src PATH
المسار إلى تقرير التوافق "المصدر". تقصير:
التوافق_reports / LIB_NAME / V1_to_V2 / src_compat_report.html
-log- المسار PATH
مسار السجل لجميع الرسائل. تقصير:
سجلات / LIB_NAME / VERSION / log.txt
-log1- المسار PATH
مسار السجل للنسخة الأولى من المكتبة. تقصير:
سجلات / LIB_NAME / V1 / log.txt
-log2- المسار PATH
مسار السجل للنسخة الثانية من المكتبة. تقصير:
سجلات / LIB_NAME / V2 / log.txt
-وضع التسجيل MODE
تغيير وضع التسجيل. أساليب:
w - الكتابة فوق السجلات القديمة (افتراضي) أ - إلحاق السجلات القديمة n - لا تكتب أي سجلات
-قائمة المتضررة
قم بإنشاء ملف بقائمة الرموز غير المتوافقة بجانب توافق HTML
تقرير. استخدم الأمر 'c ++ filtfile' من binutils GNU لفك تشابك رموز C ++ في ملفات
الملف الذي تم إنشاؤه. الأسماء الافتراضية:
abi_affected.txt src_affected.txt
-عنصر اسم
اسم المكون في العنوان وملخص تقرير HTML. تقصير:
مكتبة
-لقب اسم
تغيير اسم المكتبة في عنوان التقرير إلى NAME. بشكل افتراضي سيتم عرض ملف
الاسم المحدد بواسطة -l الخيار.
معلومات إضافية DIR
تفريغ معلومات إضافية إلى DIR.
- تفريغ إضافي
قم بإنشاء تفريغ ABI ممتد يحتوي على جميع الرموز من وحدة الترجمة.
-فرض
حاول استخدام هذا الخيار إذا لم تعمل الأداة.
-تسامح LEVEL
قم بتطبيق مجموعة من الأساليب البحثية لترجمة ملفات رأس الإدخال بنجاح. أنت تستطيع
تمكين العديد من مستويات التسامح من خلال ضمهم في سلسلة واحدة (على سبيل المثال ، 13 ، 124 ،
إلخ.). المستويات:
1 - تخطي الرؤوس التي ليست من نوع Linux (مثل win32 _ *. h ، إلخ.) 2 - تخطي الرؤوس الداخلية (على سبيل المثال
* _p.h، impl / *. h، إلخ.) 3 - تخطي الترويسات التي تتضمن الرؤوس التي ليست من نوع Linux 4 - تخطي
الرؤوس المضمنة من قبل الآخرين
-متسامح
تمكين أعلى مستوى تفاوت [1234].
-التحقق من
تحقق من اكتمال تفريغ ABI.
-بسرعة
تحليل سريع. تعطيل التحقق من بعض نماذج القالب.
-تخطي-داخلي-رموز نمط
لا تتحقق من الرموز المطابقة للنمط.
-تخطي-داخلي-أنواع نمط
لا تتحقق من الأنواع المتطابقة مع النمط.
نقل:
سيتم إنشاء تقرير التوافق إلى:
المواطنون / LIB_NAME / V1_to_V2 / المواطنة
سيتم إنشاء السجل إلى:
سجلات / LIB_NAME / V1 / سجلات log.txt / LIB_NAME / V2 / log.txt
EXIT الرموز:
0 - متوافق. تم تشغيل الأداة دون أي أخطاء. غير الصفر - غير متوافق أو
تم تشغيل الأداة مع وجود أخطاء.
أكثر معلومات:
http://lvc.github.io/abi-compliance-checker/
استخدم فاحص الامتثال abi عبر الإنترنت باستخدام خدمات onworks.net