अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

एबिडिफ़ - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में एबिडिफ़ चलाएं

यह कमांड एबिडिफ है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


एबिडिफ - ईएलएफ फाइलों के एबीआई की तुलना करें

एबिडिफ दो साझा पुस्तकालयों के एप्लिकेशन बाइनरी इंटरफेस (एबीआई) की तुलना करता है ELF
प्रारूप। यह दो एबीआई के बीच अंतर का वर्णन करने वाली एक सार्थक रिपोर्ट प्रस्तुत करता है।

एक व्यापक एबीआई परिवर्तन रिपोर्ट के लिए जिसमें फ़ंक्शन और वेरिएबल के बारे में परिवर्तन शामिल हैं
उप-प्रकार, दो इनपुट साझा लाइब्रेरी के साथ उनकी डिबग जानकारी अवश्य होनी चाहिए
in बौना प्रारूप। अन्यथा, केवल ELF जोड़े गए या हटाए गए प्रतीकों की सूचना दी जाती है।

मंगलाचरण


आबिडिफ़ [विकल्प]

विकल्प


· --मदद | -h

आदेश और बाहर निकलने के बारे में एक संक्षिप्त सहायता प्रदर्शित करें।

· --संस्करण | -v

कार्यक्रम का संस्करण प्रदर्शित करें और बाहर निकलें।

· --डिबग-जानकारी-dir1 | --d1 <di-पथ1>

ऐसे मामलों के लिए जहां डिबग जानकारी प्रथम-साझा-पुस्तकालय में विभाजित किया गया है
अलग फ़ाइल, बताता है abidiff वह अलग डीबग सूचना फ़ाइल कहां मिलेगी।

ध्यान दें कि दी-पथ मूल निर्देशिका को इंगित करना चाहिए जिसके अंतर्गत डिबग जानकारी
एक पेड़ की तरह तरीके से व्यवस्थित किया गया है। Red Hat आधारित सिस्टम के तहत, वह निर्देशिका है
आमतौर पर /usr/lib/डीबग.

यह भी ध्यान दें कि यह विकल्प स्प्लिट डिबग जानकारी द्वारा स्थापित के लिए अनिवार्य नहीं है
तब से आपके सिस्टम का पैकेज मैनेजर abidiff जानता है कि इसे कहां खोजना है।

· --डिबग-जानकारी-dir2 | --d2 <di-पथ2>

पसंद --डिबग-जानकारी-dir1, यह विकल्प बताता है abidiff स्प्लिट डिबग कहां मिलेगा
के लिए जानकारी दूसरा-साझा-पुस्तकालय फ़ाइल.

· --स्टेट

के बीच विस्तृत एबीआई अंतर प्रदर्शित करने के बजाय प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, बस इन अंतरों के बारे में कुछ सारांश आँकड़े प्रदर्शित करें।

· --symtabs

की केवल प्रतीक तालिकाएँ प्रदर्शित करें प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय.

· --हटाए गए-एफएनएस

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल विश्व स्तर पर परिभाषित फ़ंक्शन प्रदर्शित करें जो हटा दिए गए हैं
से प्रथम-साझा-पुस्तकालय.

· --परिवर्तित-एफएनएस

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल वैश्विक कार्यों के उप-प्रकारों में परिवर्तन प्रदर्शित करें
में परिभाषित किया गया प्रथम-साझा-पुस्तकालय.

· --जोड़ा-एफएनएस

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल विश्व स्तर पर परिभाषित फ़ंक्शन प्रदर्शित करें जिन्हें इसमें जोड़ा गया था
दूसरा-साझा-पुस्तकालय.

· --हटाए गए संस्करण

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल विश्व स्तर पर परिभाषित वेरिएबल प्रदर्शित करें जिन्हें हटा दिया गया था
से प्रथम-साझा-पुस्तकालय.

· --परिवर्तित-संस्करण

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल वैश्विक उप-प्रकारों में परिवर्तन प्रदर्शित करें
वेरिएबल्स को परिभाषित किया गया है प्रथम-साझा-पुस्तकालय

· --जोड़ा-संस्करण

के बीच अंतर के बारे में परिणामी रिपोर्ट में प्रथम-साझा-पुस्तकालय और
दूसरा-साझा-पुस्तकालय, केवल वे वैश्विक चर प्रदर्शित करें जिन्हें इसमें जोड़ा (परिभाषित) किया गया था
दूसरा-साझा-पुस्तकालय.

· --नो-लिंकेज-नाम

परिणामी रिपोर्ट में, जोड़े गए, हटाए गए, या के लिंकेज नाम प्रदर्शित न करें
परिवर्तित कार्य या चर।

· --नो-शो-लोक्स
में कहां के बारे में जानकारी न दिखाएं दूसरा साझा पुस्तकालय अपने अपने
प्रकार बदल दिया गया।

· --कोई-असंदर्भित-प्रतीक नहीं

परिणामी रिपोर्ट में, फ़ंक्शन के बारे में परिवर्तन जानकारी प्रदर्शित न करें
परिवर्तनीय प्रतीक जो किसी भी डिबग जानकारी द्वारा संदर्भित नहीं हैं। ध्यान दें कि के लिए
ये प्रतीक किसी डिबग जानकारी, परिवर्तन जानकारी द्वारा संदर्भित नहीं हैं
प्रदर्शित प्रतीकों को या तो जोड़ा जाता है या हटा दिया जाता है।

· --दमन | --सप्र <पथ-से-दमन>

स्थित एक दमन विनिर्देश फ़ाइल का उपयोग करें पथ-से-दमन। ध्यान दें कि यह
विकल्प कमांड लाइन पर कई बार दिखाई दे सकता है; सारा दमन
फिर विनिर्देश फ़ाइलों को ध्यान में रखा जाता है।

· --बूंद <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, ड्रॉप
विश्व स्तर पर परिभाषित फ़ंक्शन और वेरिएबल जिनके नाम नियमित अभिव्यक्ति से मेल खाते हैं
regex. परिणामस्वरूप, इन कार्यों या चरों से संबंधित कोई भी परिवर्तन उत्सर्जित नहीं होगा
भिन्न रिपोर्ट में.

· --ड्रॉप-एफएन <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, ड्रॉप
विश्व स्तर पर परिभाषित फ़ंक्शन जिनका नाम नियमित अभिव्यक्ति से मेल खाता है regex। के तौर पर
परिणाम, इन कार्यों से संबंधित कोई भी परिवर्तन अंतर रिपोर्ट में उत्सर्जित नहीं किया जाएगा।

· --ड्रॉप-var <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, ड्रॉप
विश्व स्तर पर परिभाषित चर नियमित अभिव्यक्ति से मेल खाते हैं regex.

· --रखना <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, रखें
विश्व स्तर पर परिभाषित फ़ंक्शन और वेरिएबल जिनके नाम नियमित अभिव्यक्ति से मेल खाते हैं
regex. अन्य सभी कार्य और चर फर्श पर गिरा दिए गए हैं और इस प्रकार नहीं होंगे
परिणामी अंतर रिपोर्ट में दिखाई दें।

· --कीप-एफएन <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, रखें
विश्व स्तर पर परिभाषित फ़ंक्शन जिनका नाम नियमित अभिव्यक्ति से मेल खाता है regex। सभी
अन्य कार्य फर्श पर गिरा दिए गए हैं और इस प्रकार परिणाम में दिखाई नहीं देंगे
भिन्न रिपोर्ट.

· --रखें-var <regex>

पढ़ते समय प्रथम-साझा-पुस्तकालय और दूसरा-साझा-पुस्तकालय ईएलएफ इनपुट फ़ाइलें, रखें
विश्व स्तर पर परिभाषित कि कौन से नाम नियमित अभिव्यक्ति से मेल खाते हैं regex। अन्य सभी
चर को फर्श पर गिरा दिया जाता है और इस प्रकार परिणामी अंतर में दिखाई नहीं देगा
रिपोर्ट.

· --हानिरहित

अंतर रिपोर्ट में, केवल हानिरहित परिवर्तन प्रदर्शित करें। डिफ़ॉल्ट रूप से, हानिरहित
परिवर्तनों को अंतर रिपोर्ट से फ़िल्टर किया जाता है और अव्यवस्था को न्यूनतम रखा जाता है
वास्तविक एबीआई मुद्दों का पता लगाने के लिए बड़ा बदलाव।

· --कोई हानिकारक नहीं

अंतर रिपोर्ट में, हानिकारक परिवर्तन प्रदर्शित न करें. डिफ़ॉल्ट रूप से, केवल हानिकारक
परिवर्तन भिन्न रिपोर्ट में प्रदर्शित होते हैं।

· --अनावश्यक

भिन्न रिपोर्ट में, अनावश्यक परिवर्तन प्रदर्शित करें। एक अनावश्यक परिवर्तन एक परिवर्तन है
जिसे रिपोर्ट में अन्यत्र प्रदर्शित किया गया है।

· --नहीं-अनावश्यक

अंतर रिपोर्ट में, करें नहीं अनावश्यक परिवर्तन प्रदर्शित करें. एक अनावश्यक परिवर्तन एक परिवर्तन है
जिसे रिपोर्ट में अन्यत्र प्रदर्शित किया गया है। द्वारा यह विकल्प चालू किया जाता है
चूक।

· --कोई-वास्तुकला नहीं

एबीआई की तुलना करते समय आर्किटेक्चर को ध्यान में न रखें।

· --डंप-डिफ-ट्री
डिफ रिपोर्ट के बाद, उपयोग किए गए डिफ नोड्स ट्री का एक पाठ्य प्रतिनिधित्व उत्सर्जित करें
परिवर्तित कार्यों और चरों का प्रतिनिधित्व करने के लिए तुलना इंजन। वह
डिबगिंग उद्देश्यों के लिए त्रुटि आउटपुट में प्रतिनिधित्व उत्सर्जित होता है। ध्यान दें कि
यह भिन्न वृक्ष केवल उन फ़ंक्शंस और वेरिएबल्स के लिए प्रासंगिक है जिनमें कुछ उप-प्रकार हैं
परिवर्तन। जोड़े गए या हटाए गए फ़ंक्शंस और वेरिएबल्स में कोई भिन्न नोड ट्री नहीं है
उनसे जुड़ा हुआ.

· --आँकड़े

विभिन्न आंतरिक चीजों के बारे में आंकड़े जारी करें।

· --शब्दशः

विविध आंतरिक चीजों की प्रगति के बारे में वर्बोज़ लॉग का उत्सर्जन करें।

वापसी मान


का निकास कोड abidiff यदि बायनेरिज़ की एबीआई की तुलना की जा रही है तो कमांड या तो 0 है
यदि वे भिन्न हैं या उपकरण में कोई त्रुटि आई है तो बराबर हैं, या गैर-शून्य हैं।

बाद के मामले में, निकास कोड एक 8-बिट-चौड़ा बिट फ़ील्ड है जिसमें प्रत्येक बिट में एक होता है
विशिष्ट अर्थ.

मान 1 का पहला बिट, नाम दिया गया ABIDIFF_ERROR मतलब कोई त्रुटि थी.

मान 2 का दूसरा बिट, नाम दिया गया ABIDIFF_USAGE_ERROR इसका मतलब है कि रास्ते में कोई त्रुटि थी
उपयोगकर्ता ने टूल का आह्वान किया. उदाहरण के लिए, यदि उपयोगकर्ता ने टूल का आह्वान किया तो इसे सेट किया जा सकता है
किसी अज्ञात कमांड लाइन स्विच के साथ, किसी गलत संख्या या तर्क आदि के साथ। यदि यह बिट है
सेट करें, फिर ABIDIFF_ERROR बिट भी सेट होना चाहिए.

मान 4 का तीसरा बिट, नाम दिया गया ABIDIFF_ABI_परिवर्तन इसका अर्थ है बायनेरिज़ का ABI
तुलना भिन्न हैं।

मान 8 का चौथा बिट, नाम दिया गया ABIDIFF_ABI_INCOMPATIBLE_CHANGE का मतलब है ABI
तुलना की गई बायनेरिज़ असंगत तरीके से भिन्न हैं। यदि यह बिट सेट है, तो
ABIDIFF_ABI_परिवर्तन बिट भी सेट होना चाहिए. यदि ABIDIFF_ABI_परिवर्तन सेट है और
ABIDIFF_INCOMPATIBLE_CHANGE is नहीं सेट करें, तो इसका मतलब है कि एबीआई की तुलना की जा सकती है
या संगत नहीं हो सकता है. उस स्थिति में, एक इंसान को एबीआई परिवर्तनों की समीक्षा करने की आवश्यकता है
यह तय करने के लिए कि वे संगत हैं या नहीं।

शेष बिट्स का फिलहाल उपयोग नहीं किया गया है।

उपयोग उदाहरण


1. किसी फ़ंक्शन के उप-प्रकार में परिवर्तन का पता लगाना:

$ कैट-एन टेस्ट-v0.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 संरचना S0
5 {
6 पूर्णांक m0;
7 };
8
9 शून्य
10 foo(S0* /*parameter_name*/)
11 {
12 // पैरामीटर_नाम के साथ कुछ करें।
13}
$
$ कैट-एन टेस्ट-v1.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 संरचना प्रकार_आधार
5 {
6 पूर्णांक डाला गया;
7 };
8
9 संरचना S0: सार्वजनिक टाइप_बेस
10 {
11 पूर्णांक 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 वेरिएबल जोड़ा गया

कुछ अप्रत्यक्ष उप-प्रकार परिवर्तन के साथ 1 फ़ंक्शन:

[सी]'फ़ंक्शन शून्य foo(S0*)' में कुछ अप्रत्यक्ष उप-प्रकार परिवर्तन हैं:
'S0*' प्रकार के पैरामीटर 0 में उप-प्रकार परिवर्तन हैं:
'struct S0' टाइप करने की ओर इशारा किया गया:
आकार 32 से 64 बिट्स में बदल गया
1 बेस क्लास प्रविष्टि:
संरचना प्रकार_आधार
1 डेटा सदस्य परिवर्तन:
'int S0::m0' ऑफसेट 0 से 32 में बदल गया
$

2. किसी फ़ंक्शन के उप-प्रकार में किसी अन्य परिवर्तन का पता लगाना:

$ कैट-एन टेस्ट-v0.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 संरचना S0
5 {
6 पूर्णांक m0;
7 };
8
9 शून्य
10 foo(S0& /*parameter_name*/)
11 {
12 // पैरामीटर_नाम के साथ कुछ करें।
13}
$
$ कैट-एन टेस्ट-v1.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 संरचना S0
5 {
6 वर्ण सम्मिलित_सदस्य;
7 पूर्णांक 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 वेरिएबल जोड़ा गया

कुछ अप्रत्यक्ष उप-प्रकार परिवर्तन के साथ 1 फ़ंक्शन:

[सी]'फ़ंक्शन शून्य foo(S0&)' में कुछ अप्रत्यक्ष उप-प्रकार परिवर्तन हैं:
'S0&' प्रकार के पैरामीटर 0 में उप-प्रकार परिवर्तन हैं:
संदर्भित प्रकार 'struct S0' में:
आकार 32 से 64 बिट्स में बदल गया
1 डेटा सदस्य प्रविष्टि:
'char S0::inserted_member', ऑफसेट 0 पर (बिट्स में)
1 डेटा सदस्य परिवर्तन:
'int S0::m0' ऑफसेट 0 से 32 में बदल गया

$

3. यह पता लगाना कि फ़ंक्शंस हटा दिए गए हैं या लाइब्रेरी में जोड़ दिए गए हैं:

$ कैट-एन टेस्ट-v0.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 संरचना S0
5 {
6 पूर्णांक m0;
7 };
8
9 शून्य
10 foo(S0& /*parameter_name*/)
11 {
12 // पैरामीटर_नाम के साथ कुछ करें।
13}
$
$ कैट-एन टेस्ट-v1.cc
1 // इसे इसके साथ संकलित करें:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 संरचना S0
5 {
6 वर्ण सम्मिलित_सदस्य;
7 पूर्णांक 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 हटाया गया फ़ंक्शन:
'फ़ंक्शन शून्य foo(S0&)' {_Z3fooR2S0}

1 जोड़ा गया फ़ंक्शन:
'फ़ंक्शन शून्य बार(S0&)' {_Z3barR2S0}

$

onworks.net सेवाओं का उपयोग करके ऑनलाइन एबिडिफ़ का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad