אנגליתצרפתיתספרדי

Ad


סמל OnWorks

abidiff - מקוון בענן

הפעל את Abidiff בספק אירוח בחינם של OnWorks על אובונטו אונליין, פדורה אונליין, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זהו הפקודה abidiff שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


abidiff - השוו ABIs של קבצי ELF

abidiff משווה בין ממשקי יישומים בינאריים (ABI) של שתי ספריות משותפות ב ELF
פוּרמָט. הוא פולט דוח משמעותי המתאר את ההבדלים בין שני ABIs.

לדוח שינוי ABI מקיף הכולל שינויים לגבי פונקציה ומשתנים
תת-סוגים, שתי ספריות הקלט המשותפות חייבות להיות מלוות עם מידע ניפוי הבאגים שלהן
in ננס פוּרמָט. אחרת, בלבד ELF סמלים שנוספו או הוסרו מדווחים.

קְרִיאָה


abidiff [אפשרויות]

אפשרויות


· - עזרה | -h

הצג עזרה קצרה על הפקודה ויציאה.

· --גִרְסָה | -v

הצג את גרסת התוכנית וצא.

· --debug-info-dir1 | --ד1 <די-נתיב1>

למקרים שבהם מידע ניפוי באגים עבור ספרייה משותפת ראשונה מחולק ל-a
קובץ נפרד, מספר עבידיף היכן למצוא את קובץ המידע הנפרד של ניפוי באגים.

שים לב כי די-נתיב חייב להצביע על ספריית השורש שמתחתיה מידע ניפוי הבאגים
מסודר בצורה דמוית עץ. תחת מערכות מבוססות Red Hat, הספרייה הזו היא
בְּדֶרֶך כְּלַל /usr/lib/debug.

שימו לב שגם אפשרות זו אינה חובה עבור מידע ניפוי באגים מפוצל שהותקן על ידי
מנהל החבילות של המערכת שלך כי אז עבידיף יודע איפה למצוא את זה.

· --debug-info-dir2 | --ד2 <די-נתיב2>

כמו --debug-info-dir1, מספר האפשרויות הזה עבידיף היכן למצוא את ניפוי הבאגים המפוצל
מידע עבור ספרייה משותפת שנייה קובץ.

· -סטטוס

במקום להציג את ההבדלים המפורטים ב-ABI ביניהם ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, רק הצג כמה סטטיסטיקות סיכום לגבי ההבדלים האלה.

· --סמלים

הצג רק את טבלאות הסמלים של ספרייה משותפת ראשונה ו ספרייה משותפת שנייה.

· --מחק-fns

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את הפונקציות המוגדרות באופן גלובלי שנמחקו
החל מ- ספרייה משותפת ראשונה.

· --changed-fns

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את השינויים בתתי-סוגים של הפונקציות הגלובליות
מוגדר ב ספרייה משותפת ראשונה.

· --added-fns

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את הפונקציות המוגדרות באופן גלובלי שנוספו אליהן
ספרייה משותפת שנייה.

· --מחק-ווארים

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את המשתנים המוגדרים באופן גלובלי שנמחקו
החל מ- ספרייה משותפת ראשונה.

· --changed-vars

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את השינויים בתתי הסוגים של הגלובלי
משתנים המוגדרים ב ספרייה משותפת ראשונה

· --added-vars

בדוח שהתקבל על ההבדלים בין ספרייה משותפת ראשונה ו
ספרייה משותפת שנייה, הצג רק את המשתנים הגלובליים שנוספו (הוגדרו) אליהם
ספרייה משותפת שנייה.

· --שם-אין-קישור

בדוח המתקבל, אל תציג את שמות ההצמדה של הנוספים, הוסרו או
השתנו פונקציות או משתנים.

· --לא-הופעה-לוקים
אל תציג מידע על היכן ב שני משותף ספריה בהתאמה
הסוג שונה.

· --לא-ללא-סימנים-סמלים

בדוח המתקבל, אל תציג מידע על שינוי על פונקציה ו
סמלים משתנים שאינם מוזכרים על ידי מידע ניפוי באגים. שימו לב שעבור
סמלים אלה אינם מוזכרים על ידי מידע ניפוי באגים, מידע השינוי
המוצג הוא סמל נוסף או הוסרו.

· --הדחקות | -- supr <נתיב להדחקות>

השתמש בקובץ מפרט דיכוי הממוקם ב נתיב להדחקות. שים לב לכך
אפשרות יכולה להופיע מספר פעמים בשורת הפקודה; כל הדיכוי
לאחר מכן נלקחים בחשבון קובצי המפרט.

· --יְרִידָה <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שחרר
הפונקציות והמשתנים המוגדרים באופן גלובלי ששמותיהם תואמים לביטוי הרגולרי
regex. כתוצאה מכך, לא ייפלט שינוי הכרוך בפונקציות או משתנים אלה
בדוח ההפרש.

· --drop-fn <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שחרר
הפונקציות המוגדרות באופן גלובלי ששמותיהם תואמים לביטוי הרגולרי regex. כ
כתוצאה מכך, שום שינוי הכרוך בפונקציות אלו לא ייפלט בדוח ההבדל.

· --דרופ-וואר <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שחרר
המשתנים המוגדרים באופן גלובלי התואמים לביטוי הרגולרי regex.

· --לִשְׁמוֹר <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שמור
הפונקציות והמשתנים המוגדרים באופן גלובלי ששמות תואמים לביטוי הרגולרי
regex. כל שאר הפונקציות והמשתנים נשמטים על הרצפה וכך לא
מופיעים בדוח ההבדל שנוצר.

· --keep-fn <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שמור
הפונקציות המוגדרות באופן גלובלי ששמותיהם תואמים לביטוי הרגולרי regex. כל
פונקציות אחרות נשמטות על הרצפה ולכן לא יופיעו בתוצאה
דוח הבדל.

· --שמור-var <regex>

בעת קריאת ה ספרייה משותפת ראשונה ו ספרייה משותפת שנייה קבצי קלט ELF, שמור
השמות המוגדרים באופן גלובלי תואמים לביטוי הרגולרי regex. כל שאר
משתנים יורדים על הרצפה ולכן לא יופיעו בהפרש המתקבל
לדווח.

· --לֹא מַזִיק

בדוח ההבדל, הצג רק את השינויים הלא מזיקים. כברירת מחדל, הבלתי מזיק
השינויים מסוננים מדוח ההפרשים שומרים על העומס למינימום ויש להם
שינוי גדול יותר כדי לזהות בעיות ABI אמיתיות.

· --לא מזיק

בדוח ההבדל, אל תציג את השינויים המזיקים. כברירת מחדל, רק המזיק
השינויים מוצגים בדוח ההבדל.

· --מיותר

בדוח ההבדל, הצג שינויים מיותרים. שינוי מיותר הוא שינוי
שהוצג במקום אחר בדוח.

· --לא מיותר

בדוח ההבדל, עשה לא להציג שינויים מיותרים. שינוי מיותר הוא שינוי
שהוצג במקום אחר בדוח. אפשרות זו מופעלת על ידי
ברירת המחדל.

· --ללא ארכיטקטורה

אל תיקח בחשבון את הארכיטקטורה בעת השוואת ABIs.

· --dump-diff-tree
לאחר דוח ה-diff, פלט ייצוג טקסטואלי של עץ ה-diff nodes בשימוש
מנוע ההשוואה לייצג את הפונקציות והמשתנים שהשתנו. זֶה
ייצוג נפלט לפלט השגיאה למטרות ניפוי באגים. ציין זאת
עץ ההבדל הזה רלוונטי רק לפונקציות ומשתנים שיש להם תת-סוג כלשהו
שינויים. לפונקציות ומשתנים שנוספו או הוסרו אין שום עץ צמתים הבדלים
הקשורים אליהם.

· --סטטיסטיקות

פולט סטטיסטיקה על דברים פנימיים שונים.

· --מִלוּלִי

פרסם יומנים מילוליים על ההתקדמות של דברים פנימיים שונים.

לַחֲזוֹר ערכים


קוד היציאה של עבידיף הפקודה היא 0 אם ה-ABI של הקבצים הבינאריים שמשווים
שווים, או לא אפס אם הם שונים או אם הכלי נתקל בשגיאה.

במקרה המאוחר, קוד היציאה הוא שדה סיביות ברוחב 8 סיביות שבו לכל סיביות יש a
משמעות ספציפית.

הסיבית הראשונה, בעלת ערך 1, נקראת ABIDIFF_ERROR אומר שהייתה שגיאה.

הביט השני, בעל ערך 2, נקרא ABIDIFF_USAGE_ERROR פירושו שהייתה שגיאה בדרך
המשתמש הפעיל את הכלי. זה עשוי להיות מוגדר, למשל, אם המשתמש הפעיל את הכלי
עם מתג שורת פקודה לא ידוע, עם מספר או ארגומנט שגוי וכו' אם הביט הזה הוא
להגדיר, ואז את ABIDIFF_ERROR יש להגדיר גם bit.

הסיבית השלישית, בעלת ערך 4, נקראת ABIDIFF_ABI_CHANGE פירושו ה-ABI של ההוויה הבינארית
בהשוואה שונים.

הסיבית הרביעית, בעלת ערך 8, נקראת ABIDIFF_ABI_INCOMPATIBLE_CHANGE פירושו ה-ABI של ה
בינאריים בהשוואה שונים באופן לא תואם. אם הביט הזה מוגדר, אז ה-
ABIDIFF_ABI_CHANGE יש להגדיר גם bit. אם ה ABIDIFF_ABI_CHANGE מוגדר ואת
ABIDIFF_INCOMPATIBLE_CHANGE is לא מוגדר, אז זה אומר שה-ABIs שמשווים עשויים
או אולי לא תואם. במקרה כזה, אדם צריך לבדוק את השינויים ב-ABI
כדי להחליט אם הם תואמים או לא.

הסיביות הנותרות אינן בשימוש כרגע.

נוהג דוגמאות


1. זיהוי שינוי בתת-סוג של פונקציה:

$ cat -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 // עשה משהו עם parameter_name.
13}
$
$ cat -n test-v1.cc
1 // הרכיב את זה עם:
2 // g++ -g -Wall -Shared -o libtest-v1.so test-v1.cc
3
4 struct type_base
5 {
6 אינט הוכנסו;
7};
8
9 struct S0: public type_base
10 {
11 int m0;
12};
13
14 בטל
15 foo(S0* /*parameter_name*/)
16 {
17 // עשה משהו עם parameter_name.
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 סיביות
הכנסת כיתה בסיס אחת:
struct type_base
שינוי חבר נתונים אחד:
היסט 'int S0::m0' השתנה מ-0 ל-32
$

2. זיהוי שינוי נוסף בתת-סוג של פונקציה:

$ cat -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 // עשה משהו עם parameter_name.
13}
$
$ cat -n test-v1.cc
1 // הרכיב את זה עם:
2 // g++ -g -Wall -Shared -o libtest-v1.so test-v1.cc
3
4 מבנה S0
5 {
6 char inserted_member;
7 int m0;
8};
9
10 בטל
11 foo(S0& /*parameter_name*/)
12 {
13 // עשה משהו עם parameter_name.
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. זיהוי שפונקציות הוסרו או נוספו לספרייה:

$ cat -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 // עשה משהו עם parameter_name.
13}
$
$ cat -n test-v1.cc
1 // הרכיב את זה עם:
2 // g++ -g -Wall -Shared -o libtest-v1.so test-v1.cc
3
4 מבנה S0
5 {
6 char inserted_member;
7 int m0;
8};
9
10 בטל
11 bar(S0& /*parameter_name*/)
12 {
13 // עשה משהו עם parameter_name.
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 משתנה נוסף

פונקציה אחת שהוסרה:
'function void foo(S0&)' {_Z3fooR2S0}

פונקציה אחת נוספת:
'function void bar(S0&)' {_Z3barR2S0}

$

השתמש ב-abidiff באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

  • 1
    facetracknoir
    facetracknoir
    תוכנית מעקב ראש מודולרית כי
    תומך במספר עוקבי פנים, מסננים
    ופרוטוקולי משחק. בין הגששים
    הם SM FaceAPI, AIC Inertial Head
    עוקב ...
    הורד את facetracknoir
  • 2
    קוד QR של PHP
    קוד QR של PHP
    PHP QR Code הוא קוד פתוח (LGPL)
    ספרייה להפקת קוד QR,
    ברקוד דו מימדי. מבוסס על
    ספריית libqrencode C, מספקת API עבור
    יצירת סרגל קוד QR...
    הורד PHP QR Code
  • 3
    פריסיב
    פריסיב
    Freeciv הוא מבוסס תור חינמי
    משחק אסטרטגיה מרובה משתתפים, שבו כל אחד
    שחקן הופך למנהיג של א
    ציוויליזציה, נלחמת להשיג את
    המטרה הסופית: להיות...
    הורד את Freeciv
  • 4
    ארגז חול של קוקייה
    ארגז חול של קוקייה
    Cuckoo Sandbox משתמש ברכיבים כדי
    לפקח על ההתנהגות של תוכנות זדוניות ב-a
    סביבת ארגז חול; מבודד מה
    שאר המערכת. הוא מציע אוטומטי
    ניתוח או...
    הורד קוקייה חול
  • 5
    LMS-YouTube
    LMS-YouTube
    הפעל סרטון YouTube ב-LMS (העברה של
    Triode's to YouTbe API v3) זהו
    יישום שניתן גם לאחזר
    החל מ-
    https://sourceforge.net/projects/lms-y...
    הורד את LMS-YouTube
  • 6
    קרן מצגת Windows
    קרן מצגת Windows
    Windows Presentation Foundation (WPF)
    היא מסגרת ממשק משתמש לבניית Windows
    יישומי שולחן עבודה. WPF תומך ב-a
    מערך רחב של פיתוח אפליקציות
    מאפיינים...
    הורד את Windows Presentation Foundation
  • עוד »

פקודות לינוקס

Ad