عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

أبيديف - عبر الإنترنت في السحابة

قم بتشغيل abidiff في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر abidiff الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


Abidiff - قارن ABI لملفات ELF

يقارن abidiff بين واجهات التطبيقات الثنائية (ABI) لمكتبتين مشتركتين بتنسيق قزم
شكل. يصدر تقريرًا ذا مغزى يصف الاختلافات بين قيمتي ABI.

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

استدعاء


أبيديف [خيارات]

OPTIONS


· --مساعدة | -h

عرض تعليمات قصيرة حول الأمر والخروج.

· --الإصدار | -v

عرض نسخة البرنامج والخروج.

· --debug-info-dir1 | - د 1 <المسار 1>

بالنسبة للحالات التي تكون فيها معلومات التصحيح لـ أول مكتبة مشتركة ينقسم إلى
ملف منفصل ، يقول أبيديف مكان العثور على ملف معلومات التصحيح المنفصل.

نلاحظ أن دي المسار يجب أن يشير إلى الدليل الجذر الذي تحته معلومات التصحيح
يتم ترتيبها بطريقة تشبه الشجرة. تحت أنظمة Red Hat ، هذا الدليل هو
عادة / usr / lib / debug.

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

· --debug-info-dir2 | - د 2 <المسار 2>

اعجاب --debug-info-dir1، تخبرنا هذه الخيارات أبيديف مكان العثور على تصحيح الانقسام
معلومات عن المكتبة المشتركة الثانية ملف.

· - إحصائيات

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

· - سيمتاب

اعرض فقط جداول الرموز الخاصة بامتداد أول مكتبة مشتركة و المكتبة المشتركة الثانية.

· - تم حذفه

في التقرير الناتج عن الاختلافات بين أول مكتبة مشتركة و
المكتبة المشتركة الثانية، اعرض فقط الوظائف المحددة عالميًا التي تم حذفها
تبدأ من أول مكتبة مشتركة.

· --تغير fns

في التقرير الناتج عن الاختلافات بين أول مكتبة مشتركة و
المكتبة المشتركة الثانية، فقط اعرض التغييرات في الأنواع الفرعية للوظائف العامة
المعرفة في أول مكتبة مشتركة.

· - - مضافات

في التقرير الناتج عن الاختلافات بين أول مكتبة مشتركة و
المكتبة المشتركة الثانية، فقط اعرض الوظائف المعرفة عالميًا التي تمت إضافتها إلى
المكتبة المشتركة الثانية.

· - تم حذف فارز

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

· - تغير فار

في التقرير الناتج عن الاختلافات بين أول مكتبة مشتركة و
المكتبة المشتركة الثانية، فقط عرض التغييرات في الأنواع الفرعية للعامة
المتغيرات المحددة في أول مكتبة مشتركة

· - فارز مضاف

في التقرير الناتج عن الاختلافات بين أول مكتبة مشتركة و
المكتبة المشتركة الثانية، اعرض فقط المتغيرات العامة التي تمت إضافتها (معرفة) إليها
المكتبة المشتركة الثانية.

· --لا اسم الارتباط

في التقرير الناتج ، لا تعرض أسماء الروابط الخاصة بالملفات المضافة أو التي تمت إزالتها أو
وظائف أو متغيرات متغيرة.

· --لا تظهر-المواقع
لا تظهر معلومات حول مكان في ثان شاركت مكتبة المعني
تم تغيير النوع.

· --لا توجد رموز غير مرجعية

في التقرير الناتج ، لا تعرض معلومات التغيير حول الوظيفة و
رموز المتغير التي لم يتم الرجوع إليها بواسطة أي معلومات تصحيح. لاحظ أن
لم تتم الإشارة إلى هذه الرموز بواسطة أي معلومات تصحيح ، معلومات التغيير
المعروض هو إما رموز مضافة أو محذوفة.

· - المضايقات | --الدعم <الطريق إلى القمع>

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

· --قطرة <رجإكس>

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

· - قطرة fn <رجإكس>

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

· - قطرة فار <رجإكس>

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

· --احتفظ <رجإكس>

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

· - keep-fn <رجإكس>

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

· - keep-var <رجإكس>

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

· - غير مؤذية

في تقرير الفرق ، اعرض التغييرات غير الضارة فقط. افتراضيا ، غير ضار
يتم تصفية التغييرات من تقرير الاختلافات ، مما يؤدي إلى تقليل الفوضى إلى الحد الأدنى والحصول على
تغيير أكبر لاكتشاف مشكلات ABI الحقيقية.

· - لا ضار

في تقرير مقارنة ، لا تعرض التغييرات الضارة. بشكل افتراضي ، فقط الضار
يتم عرض التغييرات في تقرير مقارنة.

· --متكرر

في تقرير مقارنة ، قم بعرض التغييرات الزائدة عن الحاجة. التغيير الزائد هو تغيير
التي تم عرضها في مكان آخر في التقرير.

· - لا زائدة عن الحاجة

في تقرير الفروقات ، قم بعمل لا عرض التغييرات الزائدة عن الحاجة. التغيير الزائد هو تغيير
التي تم عرضها في مكان آخر في التقرير. يتم تشغيل هذا الخيار بواسطة
افتراضي.

· - لا العمارة

لا تأخذ الهندسة المعمارية في الاعتبار عند مقارنة ABIs.

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

· --الحالات

ينبعث منها إحصائيات حول أشياء داخلية مختلفة.

· - الإسراف

نشر سجلات مطولة حول تقدم الأشياء الداخلية المتنوعة.

عودة القيم


كود الخروج من أبيديف يكون الأمر إما 0 إذا تم مقارنة ABI للثنائيات التي تتم مقارنتها
متساوية أو غير صفرية إذا كانت مختلفة أو إذا واجهت الأداة خطأ.

في الحالة اللاحقة ، يكون رمز الخروج عبارة عن حقل بت بعرض 8 بتات يحتوي كل بت فيه على ملف
معنى محدد.

البتة الأولى ، ذات القيمة 1 ، مسمى ABIDIFF_ERROR يعني أنه كان هناك خطأ.

البتة الثانية ذات القيمة 2 تسمى ABIDIFF_USAGE_ERROR يعني أن هناك خطأ في الطريق
قام المستخدم باستدعاء الأداة. قد يتم تعيينه ، على سبيل المثال ، إذا قام المستخدم باستدعاء الأداة
مع مفتاح سطر أوامر غير معروف ، برقم أو وسيطة خاطئة ، إلخ. إذا كان هذا البت هو
مجموعة ، ثم ABIDIFF_ERROR يجب ضبط البت أيضًا.

البتة الثالثة ، ذات القيمة 4 ، المسماة ABIDIFF_ABI_CHANGE يعني ABI للثنائيات
مقارنة مختلفة.

البتة الرابعة ذات القيمة 8 تسمى ABIDIFF_ABI_INCOMPATIBLE_CHANGE يعني ABI الخاص بـ
تختلف الثنائيات التي تمت مقارنتها بطريقة غير متوافقة. إذا تم تعيين هذا البت ، فسيتم تعيين ملف
ABIDIFF_ABI_CHANGE يجب ضبط البت أيضًا. إذا كان ABIDIFF_ABI_CHANGE تم تعيينه و
ABIDIFF_INCOMPATIBLE_CHANGE is لا تعيين ، فهذا يعني أن قيم ABI التي تتم مقارنتها قد تكون
أو قد لا تكون متوافقة. في هذه الحالة ، يحتاج الإنسان إلى مراجعة تغييرات ABI
لتقرير ما إذا كانت متوافقة أم لا.

لا يتم استخدام البتات المتبقية في الوقت الحالي.

الاستعمال أمثلة


1. الكشف عن تغيير في نوع فرعي للدالة:

القط -n test-v0.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 هيكل S0
5 {
6 int m0 ​​؛
7} ؛
8
9 باطل
10 foo (S0 * / * parameter_name * /)
11 {
12 // افعل شيئًا باستخدام معلمة_اسم.
13}
$
القط -n test-v1.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 هيكل type_base
5 {
6 إدراج int ؛
7} ؛
8
9 هيكل S0: public type_base
10 {
11 int m0 ​​؛
12} ؛
13
14 باطل
15 foo (S0 * / * parameter_name * /)
16 {
17 // افعل شيئًا باستخدام معلمة_اسم.
18}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
ملخص تغييرات الوظائف: 0 تمت إزالته ، 1 متغيرة ، 0 وظيفة مضافة
ملخص تغييرات المتغيرات: 0 تمت إزالته ، 0 متغير ، 0 متغير مضاف

وظيفة واحدة مع بعض التغيير غير المباشر في النوع الفرعي:

[C] "function void foo (S0 *)" به بعض التغييرات غير المباشرة في النوع الفرعي:
المعلمة 0 من النوع 'S0 *' بها تغييرات من النوع الفرعي:
يشير إلى النوع "Struct S0":
تغير الحجم من 32 إلى 64 بت
1 إدراج فئة أساسية:
نوع الهيكل
تغيير عضو واحد للبيانات:
تم تغيير إزاحة 'int S0 :: m0' من 0 إلى 32
$

2. الكشف عن تغيير آخر في نوع فرعي للدالة:

القط -n test-v0.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 هيكل S0
5 {
6 int m0 ​​؛
7} ؛
8
9 باطل
10 foo (S0 & / * parameter_name * /)
11 {
12 // افعل شيئًا باستخدام معلمة_اسم.
13}
$
القط -n test-v1.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 هيكل S0
5 {
6 أحرف مدرجة_العضو ؛
7 int m0 ​​؛
8} ؛
9
10 باطل
11 foo (S0 & / * parameter_name * /)
12 {
13 // افعل شيئًا باستخدام معلمة_اسم.
14}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
ملخص تغييرات الوظائف: 0 تمت إزالته ، 1 متغيرة ، 0 وظيفة مضافة
ملخص تغييرات المتغيرات: 0 تمت إزالته ، 0 متغير ، 0 متغير مضاف

وظيفة واحدة مع بعض التغيير غير المباشر في النوع الفرعي:

[C] "function void foo (S0 &)" به بعض التغييرات غير المباشرة من النوع الفرعي:
المعلمة 0 من النوع 'S0 &' بها تغييرات في النوع الفرعي:
في النوع المشار إليه 'Struct S0':
تغير الحجم من 32 إلى 64 بت
إدخال عضو واحد للبيانات:
'char S0 :: inserted_member' ، عند الإزاحة 0 (بالبتات)
تغيير عضو واحد للبيانات:
تم تغيير إزاحة 'int S0 :: m0' من 0 إلى 32

$

3. الكشف عن الوظائف التي تمت إزالتها أو إضافتها إلى مكتبة:

القط -n test-v0.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 هيكل S0
5 {
6 int m0 ​​؛
7} ؛
8
9 باطل
10 foo (S0 & / * parameter_name * /)
11 {
12 // افعل شيئًا باستخدام معلمة_اسم.
13}
$
القط -n test-v1.cc
1 // تجميع هذا باستخدام:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 هيكل S0
5 {
6 أحرف مدرجة_العضو ؛
7 int m0 ​​؛
8} ؛
9
10 باطل
11 بار (S0 & / * parameter_name * /)
12 {
13 // افعل شيئًا باستخدام معلمة_اسم.
14}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
ملخص تغييرات الوظائف: 1 تمت إزالته ، 0 تم تغييره ، 1 وظائف مضافة
ملخص تغييرات المتغيرات: 0 تمت إزالته ، 0 متغير ، 0 متغير مضاف

1 وظيفة تمت إزالتها:
"function void foo (S0 &)" {_Z3fooR2S0}

1 وظيفة مضافة:
"شريط الوظائف الفارغة (S0 &)" {_Z3barR2S0}

$

استخدم Abidiff عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    الوجه
    الوجه
    برنامج تتبع الرأس المعياري أن
    يدعم العديد من أدوات تتبع الوجوه والمرشحات
    وبروتوكولات اللعبة. بين المتعقبين
    هم SM FaceAPI ، رئيس AIC بالقصور الذاتي
    تعقب ...
    تنزيل facetracknoir
  • 2
    كود PHP QR
    كود PHP QR
    PHP QR Code مفتوح المصدر (LGPL)
    مكتبة لتوليد رمز الاستجابة السريعة ،
    الباركود ثنائي الأبعاد. مرتكز على
    مكتبة libqrencode C ، توفر API لـ
    إنشاء شريط رمز الاستجابة السريعة ...
    تنزيل PHP QR Code
  • 3
    مجاني
    مجاني
    Freeciv هو حر قائم على الدور
    لعبة استراتيجية متعددة اللاعبين ، وفي كل منها
    يصبح اللاعب قائدًا لـ
    الحضارة تقاتل من أجل الحصول على
    الهدف النهائي: أن تصبح ...
    تنزيل Freeciv
  • 4
    الوقواق رمل
    الوقواق رمل
    يستخدم Cuckoo Sandbox مكونات لـ
    مراقبة سلوك البرامج الضارة في ملف
    بيئة Sandbox معزولة عن
    باقي النظام. يقدم الآلي
    تحليل س ...
    تنزيل Cuckoo Sandbox
  • 5
    LMS- يوتيوب
    LMS- يوتيوب
    قم بتشغيل فيديو YouTube على LMS (نقل ملفات
    Triode's to YouTbe API v3) هذا هو
    أحد التطبيقات التي يمكن جلبها أيضًا
    تبدأ من
    https://sourceforge.net/projects/lms-y...
    قم بتنزيل LMS-YouTube
  • 6
    مؤسسة عرض Windows
    مؤسسة عرض Windows
    مؤسسة عرض Windows (WPF)
    هو إطار عمل واجهة المستخدم لبناء Windows
    تطبيقات سطح المكتب. يدعم WPF ملف
    مجموعة واسعة من تطوير التطبيقات
    الميزات...
    تحميل مؤسسة العرض ويندوز
  • أكثر "

أوامر لينكس

Ad