Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് abidiff ആണിത്.
പട്ടിക:
NAME
abidiff - ELF ഫയലുകളുടെ ABI-കൾ താരതമ്യം ചെയ്യുക
abidiff രണ്ട് പങ്കിട്ട ലൈബ്രറികളുടെ ആപ്ലിക്കേഷൻ ബൈനറി ഇന്റർഫേസുകളെ (ABI) താരതമ്യം ചെയ്യുന്നു ELF
ഫോർമാറ്റ്. രണ്ട് എബിഐകൾ തമ്മിലുള്ള വ്യത്യാസങ്ങൾ വിവരിക്കുന്ന അർത്ഥവത്തായ ഒരു റിപ്പോർട്ട് ഇത് പുറത്തുവിടുന്നു.
പ്രവർത്തനത്തെയും വേരിയബിളിനെയും കുറിച്ചുള്ള മാറ്റങ്ങൾ ഉൾപ്പെടുന്ന സമഗ്രമായ ABI മാറ്റ റിപ്പോർട്ടിനായി
ഉപ-തരം, രണ്ട് ഇൻപുട്ട് പങ്കിട്ട ലൈബ്രറികൾ അവയുടെ ഡീബഗ് വിവരങ്ങൾക്കൊപ്പം ഉണ്ടായിരിക്കണം
in കുള്ളൻ ഫോർമാറ്റ്. അല്ലെങ്കിൽ, മാത്രം ELF ചേർത്തതോ നീക്കം ചെയ്തതോ ആയ ചിഹ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നു.
ഇൻവോക്കേഷൻ
അബിഡിഫ് [ഓപ്ഷനുകൾ]
ഓപ്ഷനുകൾ
· --സഹായിക്കൂ | -h
കമാൻഡിനെയും എക്സിറ്റിനെയും കുറിച്ചുള്ള ഒരു ചെറിയ സഹായം പ്രദർശിപ്പിക്കുക.
· --പതിപ്പ് | -v
പ്രോഗ്രാമിന്റെ പതിപ്പ് പ്രദർശിപ്പിച്ച് പുറത്തുകടക്കുക.
· --debug-info-dir1 | --d1 <di-path1>
ഡീബഗ് വിവരങ്ങൾ ഉള്ള സന്ദർഭങ്ങളിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി a ആയി വിഭജിക്കപ്പെട്ടിരിക്കുന്നു
പ്രത്യേക ഫയൽ, പറയുന്നു അബിഡിഫ് ആ പ്രത്യേക ഡീബഗ് വിവര ഫയൽ എവിടെ കണ്ടെത്താം.
അതല്ല ദി-പാത്ത് ഡീബഗ് വിവരങ്ങൾക്ക് കീഴിലുള്ള റൂട്ട് ഡയറക്ടറിയിലേക്ക് പോയിന്റ് ചെയ്യണം
ഒരു മരം പോലെ ക്രമീകരിച്ചിരിക്കുന്നു. Red Hat അടിസ്ഥാനമാക്കിയുള്ള സിസ്റ്റങ്ങൾക്ക് കീഴിൽ, ആ ഡയറക്ടറി ഇതാണ്
സാധാരണയായി /usr/lib/debug.
ഇൻസ്റ്റാൾ ചെയ്ത സ്പ്ലിറ്റ് ഡീബഗ് വിവരങ്ങൾക്ക് ഈ ഓപ്ഷൻ നിർബന്ധമല്ല എന്നതും ശ്രദ്ധിക്കുക
നിങ്ങളുടെ സിസ്റ്റത്തിന്റെ പാക്കേജ് മാനേജർ കാരണം അബിഡിഫ് അത് എവിടെ കണ്ടെത്തണമെന്ന് അറിയാം.
· --debug-info-dir2 | --d2 <di-path2>
പോലെ --debug-info-dir1, ഈ ഓപ്ഷനുകൾ പറയുന്നു അബിഡിഫ് സ്പ്ലിറ്റ് ഡീബഗ് എവിടെ കണ്ടെത്താം
എന്നതിനായുള്ള വിവരങ്ങൾ രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ഫയൽ.
· --സ്റ്റാറ്റ്
തമ്മിലുള്ള വിശദമായ എബിഐ വ്യത്യാസങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിനുപകരം ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ഈ വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ചില സംഗ്രഹ സ്ഥിതിവിവരക്കണക്കുകൾ പ്രദർശിപ്പിക്കുക.
· --സിംടാബുകൾ
യുടെ ചിഹ്ന പട്ടികകൾ മാത്രം പ്രദർശിപ്പിക്കുക ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി.
· --Deleted-fns
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ഇല്ലാതാക്കിയ ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകൾ മാത്രം പ്രദർശിപ്പിക്കുക
നിന്ന് ആദ്യം പങ്കിട്ട-ലൈബ്രറി.
· --മാറ്റം-fns
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ആഗോള ഫംഗ്ഷനുകളുടെ ഉപ-തരം മാറ്റങ്ങൾ മാത്രം പ്രദർശിപ്പിക്കുക
ൽ നിർവചിച്ചിരിക്കുന്നു ആദ്യം പങ്കിട്ട-ലൈബ്രറി.
· --ചേർത്തു-fns
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ചേർത്തിട്ടുള്ള ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകൾ മാത്രം പ്രദർശിപ്പിക്കുക
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി.
· --Deleted-vars
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ഇല്ലാതാക്കിയ ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട വേരിയബിളുകൾ മാത്രം പ്രദർശിപ്പിക്കുക
നിന്ന് ആദ്യം പങ്കിട്ട-ലൈബ്രറി.
· --മാറ്റം-വാർസ്
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ഗ്ലോബലിന്റെ ഉപ-തരം മാറ്റങ്ങൾ മാത്രം പ്രദർശിപ്പിക്കുക
നിർവചിച്ചിരിക്കുന്ന വേരിയബിളുകൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി
· --ചേർത്തു-vars
തമ്മിലുള്ള വ്യത്യാസങ്ങളെക്കുറിച്ചുള്ള ഫലമായ റിപ്പോർട്ടിൽ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി, ചേർത്ത (നിർവചിച്ച) ആഗോള വേരിയബിളുകൾ മാത്രം പ്രദർശിപ്പിക്കുക
രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി.
· --നോ-ലിങ്കേജ്-നെയിം
തത്ഫലമായുണ്ടാകുന്ന റിപ്പോർട്ടിൽ, ചേർത്തതോ നീക്കം ചെയ്തതോ അല്ലെങ്കിൽ നീക്കം ചെയ്തതോ ആയ ലിങ്കേജ് പേരുകൾ പ്രദർശിപ്പിക്കരുത്
ഫംഗ്ഷനുകൾ അല്ലെങ്കിൽ വേരിയബിളുകൾ മാറ്റി.
· --നോ-ഷോ-ലോക്കുകൾ
എവിടെ എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ കാണിക്കരുത് സെക്കന്റ് പങ്കിട്ടു ലൈബ്രറി ബന്ധപ്പെട്ടവ
തരം മാറ്റി.
· --നോ-അൺ റഫറൻസ്-ചിഹ്നങ്ങൾ
തത്ഫലമായുണ്ടാകുന്ന റിപ്പോർട്ടിൽ, പ്രവർത്തനത്തെ കുറിച്ചുള്ള മാറ്റ വിവരങ്ങൾ പ്രദർശിപ്പിക്കരുത്
ഡീബഗ് വിവരങ്ങളൊന്നും പരാമർശിക്കാത്ത വേരിയബിൾ ചിഹ്നങ്ങൾ. അതിനായി ശ്രദ്ധിക്കുക
ഈ ചിഹ്നങ്ങളെ ഏതെങ്കിലും ഡീബഗ് വിവരങ്ങളാൽ പരാമർശിച്ചിട്ടില്ല, മാറ്റ വിവരം
പ്രദർശിപ്പിച്ചത് ഒന്നുകിൽ ചേർത്തതോ നീക്കം ചെയ്തതോ ആയ ചിഹ്നങ്ങളാണ്.
· --അടിച്ചമർത്തലുകൾ | --suppr <അടിച്ചമർത്തലുകളിലേക്കുള്ള പാത>
എന്നതിൽ സ്ഥിതിചെയ്യുന്ന ഒരു സപ്രഷൻ സ്പെസിഫിക്കേഷൻ ഫയൽ ഉപയോഗിക്കുക അടിച്ചമർത്തലുകളിലേക്കുള്ള പാത. ഇത് ശ്രദ്ധിക്കുക
ഓപ്ഷൻ കമാൻഡ് ലൈനിൽ ഒന്നിലധികം തവണ ദൃശ്യമാകും; എല്ലാ അടിച്ചമർത്തലും
സ്പെസിഫിക്കേഷൻ ഫയലുകൾ പിന്നീട് കണക്കിലെടുക്കുന്നു.
· --ഡ്രോപ്പ് <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ, ഡ്രോപ്പ്
ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകളും വേരിയബിളുകളും സാധാരണ പദപ്രയോഗവുമായി പൊരുത്തപ്പെടുന്ന പേര്
regex. തൽഫലമായി, ഈ ഫംഗ്ഷനുകളോ വേരിയബിളുകളോ ഉൾപ്പെടുന്ന ഒരു മാറ്റവും പുറത്തുവിടില്ല
ഡിഫ് റിപ്പോർട്ടിൽ.
· --ഡ്രോപ്പ്-എഫ്എൻ <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ, ഡ്രോപ്പ്
റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന പേര് ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകൾ regex. പോലെ
ഫലമായി, ഈ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്ന മാറ്റങ്ങളൊന്നും ഡിഫ് റിപ്പോർട്ടിൽ പുറത്തുവിടില്ല.
· --ഡ്രോപ്പ്-var <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ, ഡ്രോപ്പ്
ഒരു റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട വേരിയബിളുകൾ regex.
· --സൂക്ഷിക്കുക <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ സൂക്ഷിക്കുക
ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകളും വേരിയബിളുകളും പേരുകൾ റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്നു
regex. മറ്റെല്ലാ ഫംഗ്ഷനുകളും വേരിയബിളുകളും തറയിൽ വീഴുന്നു, അങ്ങനെ ചെയ്യില്ല
തത്ഫലമായുണ്ടാകുന്ന വ്യത്യാസ റിപ്പോർട്ടിൽ ദൃശ്യമാകും.
· --കീപ്പ്-എഫ്എൻ <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ സൂക്ഷിക്കുക
റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന പേര് ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ട ഫംഗ്ഷനുകൾ regex. എല്ലാം
മറ്റ് ഫംഗ്ഷനുകൾ തറയിൽ ഉപേക്ഷിക്കപ്പെടുന്നു, അതിനാൽ ഫലത്തിൽ ദൃശ്യമാകില്ല
വ്യത്യാസ റിപ്പോർട്ട്.
· --keep-var <regex>
വായിക്കുമ്പോൾ ആദ്യം പങ്കിട്ട-ലൈബ്രറി ഒപ്പം രണ്ടാമത്തെ പങ്കിട്ട-ലൈബ്രറി ELF ഇൻപുട്ട് ഫയലുകൾ സൂക്ഷിക്കുക
സാധാരണ പദപ്രയോഗവുമായി പൊരുത്തപ്പെടുന്ന പേരുകൾ ആഗോളതലത്തിൽ നിർവചിക്കപ്പെട്ടിരിക്കുന്നു regex. മറ്റെല്ലാം
വേരിയബിളുകൾ തറയിൽ വീണു, അതിനാൽ ഫലമായുണ്ടാകുന്ന വ്യത്യാസത്തിൽ ദൃശ്യമാകില്ല
റിപ്പോർട്ട് ചെയ്യുക.
· --നിരുപദ്രവകാരി
ഡിഫ് റിപ്പോർട്ടിൽ, നിരുപദ്രവകരമായ മാറ്റങ്ങൾ മാത്രം പ്രദർശിപ്പിക്കുക. സ്വതവേ, നിരുപദ്രവകാരി
മാറ്റങ്ങൾ വ്യത്യസ്ത റിപ്പോർട്ടിൽ നിന്ന് ഫിൽട്ടർ ചെയ്തിരിക്കുന്നു
യഥാർത്ഥ എബിഐ പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നതിനുള്ള വലിയ മാറ്റം.
· --ഹാനികരമല്ല
ഡിഫ് റിപ്പോർട്ടിൽ, ദോഷകരമായ മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കരുത്. സ്ഥിരസ്ഥിതിയായി, ദോഷകരമായത് മാത്രം
മാറ്റങ്ങൾ ഡിഫ് റിപ്പോർട്ടിൽ പ്രദർശിപ്പിക്കും.
· --അനവധി
ഡിഫ് റിപ്പോർട്ടിൽ, അനാവശ്യ മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക. അനാവശ്യമായ മാറ്റം ഒരു മാറ്റമാണ്
അത് റിപ്പോർട്ടിൽ മറ്റൊരിടത്ത് പ്രദർശിപ്പിച്ചിട്ടുണ്ട്.
· --ആവശ്യമില്ല
ഡിഫ് റിപ്പോർട്ടിൽ, ചെയ്യുക ചെയ്യില്ല അനാവശ്യ മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക. അനാവശ്യമായ മാറ്റം ഒരു മാറ്റമാണ്
അത് റിപ്പോർട്ടിൽ മറ്റൊരിടത്ത് പ്രദർശിപ്പിച്ചിട്ടുണ്ട്. ഈ ഓപ്ഷൻ സ്വിച്ച് ഓൺ ചെയ്തിരിക്കുന്നു
സ്ഥിരസ്ഥിതിയായി.
· --നോ-വാസ്തുവിദ്യ
എബിഐകൾ താരതമ്യം ചെയ്യുമ്പോൾ വാസ്തുവിദ്യ കണക്കിലെടുക്കരുത്.
· --ഡംപ്-ഡിഫ്-ട്രീ
ഡിഫ് റിപ്പോർട്ടിന് ശേഷം, ഉപയോഗിച്ച ഡിഫ് നോഡ്സ് ട്രീയുടെ ഒരു വാചക പ്രതിനിധാനം പുറപ്പെടുവിക്കുക
മാറിയ പ്രവർത്തനങ്ങളെയും വേരിയബിളുകളെയും പ്രതിനിധീകരിക്കുന്നതിനുള്ള താരതമ്യ എഞ്ചിൻ. അത്
ഡീബഗ്ഗിംഗ് ആവശ്യങ്ങൾക്കായി പിശക് ഔട്ട്പുട്ടിലേക്ക് പ്രാതിനിധ്യം പുറപ്പെടുവിക്കുന്നു. അതല്ല
ചില ഉപ-തരം ഉള്ള ഫംഗ്ഷനുകൾക്കും വേരിയബിളുകൾക്കും മാത്രമേ ഈ ഡിഫ് ട്രീ പ്രസക്തമാകൂ
മാറ്റങ്ങൾ. ചേർത്തതോ നീക്കം ചെയ്തതോ ആയ ഫംഗ്ഷനുകൾക്കും വേരിയബിളുകൾക്കും ഡിഫ് നോഡുകൾ ട്രീ ഇല്ല
അവരുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.
· -- സ്ഥിതിവിവരക്കണക്കുകൾ
വിവിധ ആന്തരിക കാര്യങ്ങളെക്കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ പുറത്തുവിടുക.
· --വാക്കുകൾ
വിവിധ ആന്തരിക കാര്യങ്ങളുടെ പുരോഗതിയെക്കുറിച്ച് വാചാലമായ ലോഗുകൾ പുറപ്പെടുവിക്കുക.
തിരികെ മൂല്യങ്ങൾ
യുടെ എക്സിറ്റ് കോഡ് അബിഡിഫ് ബൈനറികളുടെ എബിഐ താരതമ്യം ചെയ്താൽ കമാൻഡ് ഒന്നുകിൽ 0 ആണ്
തുല്യമാണ്, അല്ലെങ്കിൽ അവ വ്യത്യാസപ്പെട്ടാൽ അല്ലെങ്കിൽ ടൂൾ ഒരു പിശക് നേരിട്ടാൽ പൂജ്യമല്ല.
പിന്നീടുള്ള സന്ദർഭത്തിൽ, എക്സിറ്റ് കോഡ് 8-ബിറ്റ് വൈഡ് ബിറ്റ് ഫീൽഡാണ്, അതിൽ ഓരോ ബിറ്റിനും a ഉണ്ട്
നിർദ്ദിഷ്ട അർത്ഥം.
ആദ്യത്തെ ബിറ്റ്, മൂല്യം 1-ന്റെ പേര് ABIDIFF_ERROR ഒരു പിശക് ഉണ്ടായിരുന്നു എന്നാണ് അർത്ഥമാക്കുന്നത്.
രണ്ടാമത്തെ ബിറ്റ്, മൂല്യം 2-ന്റെ പേര് ABIDIFF_USAGE_ERROR വഴിയിൽ ഒരു പിശക് ഉണ്ടായിരുന്നു എന്നാണ് അർത്ഥമാക്കുന്നത്
ഉപയോക്താവ് ഉപകരണം അഭ്യർത്ഥിച്ചു. ഉദാഹരണത്തിന്, ഉപയോക്താവ് ഉപകരണം അഭ്യർത്ഥിച്ചാൽ അത് സജ്ജമാക്കിയേക്കാം
ഒരു അജ്ഞാത കമാൻഡ് ലൈൻ സ്വിച്ച്, തെറ്റായ നമ്പർ അല്ലെങ്കിൽ ആർഗ്യുമെന്റ് മുതലായവ. ഈ ബിറ്റ് ആണെങ്കിൽ
സെറ്റ്, പിന്നെ ദി ABIDIFF_ERROR ബിറ്റും സെറ്റ് ചെയ്യണം.
മൂല്യം 4-ന്റെ മൂന്നാമത്തെ ബിറ്റ്, പേര് ABIDIFF_ABI_CHANGE ബൈനറികളുടെ എബിഐ എന്നാണ് അർത്ഥമാക്കുന്നത്
താരതമ്യം ചെയ്യുന്നത് വ്യത്യസ്തമാണ്.
നാലാമത്തെ ബിറ്റ്, മൂല്യം 8, പേര് ABIDIFF_ABI_INCOMPATIBLE_CHANGE എന്നതിന്റെ ABI എന്നാണ് അർത്ഥമാക്കുന്നത്
താരതമ്യം ചെയ്ത ബൈനറികൾ പൊരുത്തപ്പെടാത്ത രീതിയിൽ വ്യത്യസ്തമാണ്. ഈ ബിറ്റ് സജ്ജമാക്കിയാൽ, പിന്നെ
ABIDIFF_ABI_CHANGE ബിറ്റും സെറ്റ് ചെയ്യണം. എങ്കിൽ ABIDIFF_ABI_CHANGE സെറ്റ് ആണ്
ABIDIFF_INCOMPATIBLE_CHANGE is ചെയ്യില്ല സജ്ജീകരിച്ചു, അപ്പോൾ അതിനർത്ഥം താരതമ്യപ്പെടുത്തുന്ന എബിഐകൾ സാധ്യതയാണെന്നാണ്
അല്ലെങ്കിൽ അനുയോജ്യമല്ലായിരിക്കാം. അങ്ങനെയെങ്കിൽ, ഒരു മനുഷ്യൻ ABI മാറ്റങ്ങൾ അവലോകനം ചെയ്യേണ്ടതുണ്ട്
അവ അനുയോജ്യമാണോ അല്ലയോ എന്ന് തീരുമാനിക്കാൻ.
ശേഷിക്കുന്ന ബിറ്റുകൾ തൽക്കാലം ഉപയോഗിക്കുന്നില്ല.
USAGE ഉദാഹരണങ്ങൾ
1. ഒരു ഫംഗ്ഷന്റെ ഉപ-ടൈപ്പിലെ മാറ്റം കണ്ടെത്തൽ:
$ cat -n test-v0.cc
1 // ഇതുമായി സമാഹരിക്കുക:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struct 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 int ചേർത്തു;
7 };
8
9 struct S0 : പൊതു തരം_ബേസ്
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 വേരിയബിൾ ചേർത്തു
1 ഫംഗ്ഷൻ ചില പരോക്ഷ ഉപ-തരം മാറ്റങ്ങളോടെ:
[C]'function void foo(S0*)' ചില പരോക്ഷമായ ഉപ-തരം മാറ്റങ്ങളുണ്ട്:
'S0*' തരത്തിന്റെ 0 പാരാമീറ്ററിന് ഉപ-തരം മാറ്റങ്ങളുണ്ട്:
'struct S0' എന്ന് ടൈപ്പ് ചെയ്യാൻ ചൂണ്ടിക്കാണിക്കുന്നു:
വലിപ്പം 32 ൽ നിന്ന് 64 ബിറ്റുകളായി മാറി
1 അടിസ്ഥാന ക്ലാസ് ഉൾപ്പെടുത്തൽ:
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 struct 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 S0
5 {
6 പ്രതീകം ചേർത്ത_അംഗം;
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 വേരിയബിൾ ചേർത്തു
1 ഫംഗ്ഷൻ ചില പരോക്ഷ ഉപ-തരം മാറ്റങ്ങളോടെ:
[C]'function void foo(S0&)' ചില പരോക്ഷ ഉപ-തരം മാറ്റങ്ങളുണ്ട്:
'S0&' തരത്തിന്റെ പാരാമീറ്റർ 0-ന് ഉപ-തരം മാറ്റങ്ങളുണ്ട്:
പരാമർശിച്ച തരത്തിൽ 'struct S0':
വലിപ്പം 32 ൽ നിന്ന് 64 ബിറ്റുകളായി മാറി
1 അംഗ ഡാറ്റ ഉൾപ്പെടുത്തൽ:
'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 struct 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 S0
5 {
6 പ്രതീകം ചേർത്ത_അംഗം;
7 int m0;
8 };
9
10 അസാധുവാണ്
11 ബാർ(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 വേരിയബിൾ ചേർത്തു
1 നീക്കം ചെയ്ത പ്രവർത്തനം:
'function void foo(S0&)' {_Z3fooR2S0}
1 ചേർത്ത പ്രവർത്തനം:
'function void bar(S0&)' {_Z3barR2S0}
$
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് abidiff ഓൺലൈനായി ഉപയോഗിക്കുക