ນີ້ແມ່ນຄໍາສັ່ງ abi-compliance-checker ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
abi-compliance-checker - ເຄື່ອງມືເພື່ອປຽບທຽບຄວາມເຂົ້າກັນໄດ້ຂອງ ABI ຂອງຫ້ອງສະໝຸດ C/C++ ທີ່ໃຊ້ຮ່ວມກັນ
ສະບັບ
ລາຍລະອຽດ
ຊື່:
ABI Compliance Checker (abi-compliance-checker) ກວດເບິ່ງຄວາມເຂົ້າກັນໄດ້ກັບຫຼັງຂອງ a
API ຫ້ອງສະໝຸດ C/C++
DESCRIPTION:
ABI Compliance Checker (ABICC) ເປັນເຄື່ອງມືສໍາລັບການກວດສອບ binary ຫລັງແລະ
ຄວາມເຂົ້າກັນໄດ້ໃນລະດັບແຫຼ່ງຂອງຫ້ອງສະໝຸດ C/C++ ທີ່ແບ່ງປັນ. ເຄື່ອງມືກວດສອບໄຟລ໌ສ່ວນຫົວ
ແລະຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ (*.so) ຂອງຮຸ່ນເກົ່າແລະໃຫມ່ແລະວິເຄາະການປ່ຽນແປງໃນ API ແລະ
ABI (ABI=API+compiler ABI) ທີ່ອາດຈະທໍາລາຍຄວາມເຂົ້າກັນໄດ້ຂອງຖານສອງ ແລະ/ຫຼື ລະດັບແຫຼ່ງ:
ການປ່ຽນແປງໃນການໂທ stack, ການປ່ຽນແປງ v-table, ໂຍກຍ້າຍອອກສັນຍາລັກ, ການປ່ຽນຊື່ຊ່ອງ, ແລະອື່ນໆ.
ຄວາມບໍ່ເຂົ້າກັນຂອງຖານສອງອາດຈະສົ່ງຜົນໃຫ້ເກີດການຂັດຂ້ອງ ຫຼືພຶດຕິກຳຂອງແອັບພລິເຄຊັນບໍ່ຖືກຕ້ອງ
ສ້າງຂຶ້ນດ້ວຍຫ້ອງສະໝຸດສະບັບເກົ່າ ຖ້າພວກມັນນຳໃຊ້ໃໝ່. ທີ່ມາ
ຄວາມເຂົ້າກັນບໍ່ໄດ້ອາດສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດໃນການລວບລວມຂໍ້ມູນກັບສະບັບຫ້ອງສະໝຸດໃໝ່.
ເຄື່ອງມືແມ່ນມີຈຸດປະສົງສໍາລັບການພັດທະນາຂອງຫ້ອງສະຫມຸດຊອບແວແລະການຮັກສາຂອງ
ລະບົບປະຕິບັດການທີ່ມີຄວາມສົນໃຈໃນການຮັບປະກັນຄວາມເຂົ້າກັນໄດ້ກັບຄືນໄປບ່ອນ, ເຊັ່ນ: ອະນຸຍາດໃຫ້
ແອັບພລິເຄຊັ່ນເກົ່າທີ່ຈະແລ່ນ ຫຼືຖືກລວບລວມກັບສະບັບໃໝ່ຂອງຫ້ອງສະໝຸດ.
ນອກຈາກນັ້ນ, ເຄື່ອງມືດັ່ງກ່າວສາມາດຖືກນໍາໃຊ້ໂດຍ ISVs ສໍາລັບການກວດສອບຄໍາຮ້ອງສະຫມັກທີ່ Portable ກັບໃຫມ່
ສະບັບຫ້ອງສະຫມຸດ. ບັນຫາທີ່ພົບເຫັນສາມາດຖືກພິຈາລະນາໃນເວລາປັບຕົວ
ຄໍາຮ້ອງສະຫມັກກັບສະບັບຫ້ອງສະຫມຸດໃຫມ່.
ເຄື່ອງມືນີ້ແມ່ນຊອບແວຟຣີ: ທ່ານສາມາດແຈກຢາຍມັນແລະ / ຫຼືປັບປຸງແກ້ໄຂພາຍໃຕ້ການ
ເງື່ອນໄຂຂອງ GNU LGPL ຫຼື GNU GPL.
ການໃຊ້:
abi-compliance-checker [ຕົວເລືອກ]
ຕົວຢ່າງ:
abi-compliance-checker - lib NAME -ເກົ່າ OLD.xml -ໃຫມ່ NEW.xml
OLD.xml ແລະ NEW.xml ແມ່ນຕົວອະທິບາຍ XML:
1.0
/path1/to/header(s)/ /path2/to/header(s)/
...
/path1/to/library(ies)/ /path2/to/library(ies)/
...
ຂໍ້ມູນ ທາງເລືອກ:
-h|-ຊ່ວຍ
ພິມການຊ່ວຍເຫຼືອນີ້.
-i|- ຂໍ້ມູນ
ພິມຂໍ້ມູນຄົບຖ້ວນ.
-v|-ສະບັບ
ພິມຂໍ້ມູນສະບັບ.
- dumpversion
ພິມເວີຊັນເຄື່ອງມື (1.99.14) ແລະຢ່າເຮັດຫຍັງອີກ.
ທົ່ວໄປ ທາງເລືອກ:
-l|-lib|-library NAME
ຊື່ຫໍສະໝຸດ (ບໍ່ມີສະບັບ).
-d1|-old|-o ເສັ້ນທາງ
ຄຳອະທິບາຍຂອງຫ້ອງສະໝຸດສະບັບທີ 1 (ເກົ່າ). ມັນອາດຈະເປັນຫນຶ່ງໃນຕໍ່ໄປນີ້:
1. XML-descriptor (ໄຟລ໌ VERSION.xml):
1.0
/path1/to/header(s)/ /path2/to/header(s)/
...
/path1/to/library(ies)/ /path2/to/library(ies)/
...
...
2. ABI dump ສ້າງໂດຍ - ຖິ້ມ ທາງເລືອກ 3. ໄດເລກະທໍລີທີ່ມີສ່ວນຫົວ ແລະ/ຫຼືແບ່ງປັນ
ຫ້ອງສະໝຸດ 4. ໄຟລ໌ຫົວດຽວ
ຖ້າຫາກວ່າທ່ານກໍາລັງໃຊ້ 2-4 descriptor ປະເພດ, ທ່ານຄວນຈະລະບຸຕົວເລກສະບັບ
ກັບ -v1 ແລະ -v2 ທາງເລືອກເຊັ່ນກັນ.
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມໂປດເບິ່ງ:
http://ispras.linuxbase.org/index.php/Library_Descriptor
-d2|-new|-n ເສັ້ນທາງ
ຄຳອະທິບາຍຂອງຫ້ອງສະໝຸດສະບັບທີ 2 (ໃໝ່).
- ຖິ້ມ|-dump-abi PATH
ສ້າງຫໍສະຫມຸດ ABI dump ສໍາລັບ input XML descriptor. ທ່ານສາມາດໂອນມັນໄດ້ທຸກບ່ອນ
ແລະຜ່ານແທນຕົວອະທິບາຍ. ນອກຈາກນີ້ຍັງສາມາດຖືກນໍາໃຊ້ສໍາລັບການ debugging ເຄື່ອງມື.
ລຸ້ນທີ່ຮອງຮັບ ABI dump: 2.0<=V<=3.2
ພິເສດ ທາງເລືອກ:
-app|-application PATH
ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ຫນຶ່ງເພື່ອກໍານົດຄໍາຮ້ອງສະຫມັກທີ່ຄວນຈະໄດ້ຮັບການກວດສອບ
ການເຄື່ອນໄຫວກັບສະບັບຫ້ອງສະຫມຸດໃຫມ່.
-static-libs
ກວດເບິ່ງຫ້ອງສະໝຸດສະຖິດແທນທີ່ແບ່ງປັນ. ໄດ້ ພາກສ່ວນຂອງ
XML-descriptor ຄວນຊີ້ໃຫ້ເຫັນສະຖານທີ່ຫ້ອງສະຫມຸດຄົງທີ່.
-gcc-ເສັ້ນທາງ PATH
ເສັ້ນທາງໄປຫາຕົວສັງລວມ GCC ຂ້າມເພື່ອໃຊ້ແທນ GCC (ເຈົ້າພາບ) ປົກກະຕິ.
-gcc-prefix PREFIX
GCC toolchain ຄໍານໍາຫນ້າ.
-gcc-ທາງເລືອກ OPTS
ຕົວເລືອກການລວບລວມເພີ່ມເຕີມ.
-sysroot DIR
ລະບຸໄດເລກະທໍລີຮາກທາງເລືອກ. ເຄື່ອງມືຈະຄົ້ນຫາສໍາລັບການປະກອບມີເສັ້ນທາງໃນ
ໄດເລກະທໍລີ DIR/usr/include ແລະ DIR/usr/lib.
-v1|-version1 NUM
ລະບຸເວີຊັນຫ້ອງສະໝຸດທີ 1 ຢູ່ນອກຕົວອະທິບາຍ. ທາງເລືອກນີ້ແມ່ນຈໍາເປັນຖ້າຫາກວ່າທ່ານ
ຕ້ອງການປະເພດຕົວອະທິບາຍທາງເລືອກ (ເບິ່ງ -d1 ທາງເລືອກ).
ໂດຍທົ່ວໄປແລ້ວທ່ານຄວນລະບຸມັນຢູ່ໃນ XML-descriptor:
ເວີຊັ່ນ
-v2|-version2 NUM
ລະບຸເວີຊັນຫ້ອງສະໝຸດທີ 2 ຢູ່ນອກຕົວອະທິບາຍ.
-vnum NUMBER
ລະບຸເວີຊັນຫ້ອງສະໝຸດຢູ່ໃນບ່ອນຖິ້ມ ABI ທີ່ສ້າງຂຶ້ນ. ໄດ້ ພາກສ່ວນຂອງ
input XML descriptor ຈະຖືກຂຽນທັບໃນກໍລະນີນີ້.
-s|-ເຄັ່ງຄັດ
ຮັກສາການເຕືອນຄວາມເຂົ້າກັນໄດ້ທັງໝົດເປັນບັນຫາ. ເພີ່ມຈໍານວນຄວາມຮຸນແຮງ "ຕ່ໍາ".
ບັນຫາກັບມູນຄ່າກັບຄືນຂອງເຄື່ອງມື.
- ສ່ວນຫົວເທົ່ານັ້ນ
ກວດເບິ່ງໄຟລ໌ສ່ວນຫົວໂດຍບໍ່ມີຫ້ອງສະໝຸດທີ່ແບ່ງປັນ. ມັນງ່າຍທີ່ຈະດໍາເນີນການ, ແຕ່ອາດຈະສະຫນອງ a
ບົດລາຍງານຄວາມເຂົ້າກັນໄດ້ທີ່ມີຄຸນນະພາບຕ່ໍາທີ່ມີຜົນບວກທີ່ບໍ່ຖືກຕ້ອງແລະໂດຍບໍ່ມີການກວດພົບ
ເພີ່ມ / ເອົາສັນຍາລັກ.
ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດຂຽນ ຄຳ ວ່າ "ບໍ່". ພາກສ່ວນໃນ
ຕົວອະທິບາຍ XML:
none
-show-retval
ສະແດງປະເພດຂອງການກັບຄືນຂອງສັນຍາລັກໃນບົດລາຍງານ.
-symbols-list PATH
ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ຫນຶ່ງເພື່ອລະບຸໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງສັນຍາລັກ (ຊື່ mangled ໃນ
C ++) ທີ່ຄວນຈະຖືກກວດສອບ. ສັນຍາລັກອື່ນໆຈະບໍ່ຖືກກວດສອບ.
- ບັນຊີລາຍຊື່ປະເພດ PATH
ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ຫນຶ່ງລະບຸໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງປະເພດທີ່ຄວນຈະເປັນ
ກວດແລ້ວ. ປະເພດອື່ນໆຈະບໍ່ຖືກກວດສອບ.
-skip-ສັນຍາລັກ PATH
ບັນຊີລາຍຊື່ຂອງສັນຍາລັກທີ່ບໍ່ຄວນຖືກກວດສອບ.
- ຂ້າມປະເພດ PATH
ບັນຊີລາຍຊື່ຂອງປະເພດທີ່ບໍ່ຄວນຖືກກວດສອບ.
-headers-list PATH
ໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງຫົວຂໍ້, ທີ່ຄວນຈະໄດ້ຮັບການກວດສອບ / dumped.
-skip-headers PATH
ໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງໄຟລ໌ header, ທີ່ບໍ່ຄວນຈະຖືກກວດສອບ.
- ຫົວ NAME
ກວດສອບ/Dump ABI ຂອງສ່ວນຫົວນີ້ເທົ່ານັ້ນ.
- ຖິ້ມຂີ້ເຫຍື້ອ
ເຮັດການຖິ້ມຂີ້ເຫຍື້ອສໍາລັບສອງສະບັບຂອງຫ້ອງສະຫມຸດແລະປຽບທຽບ dumps. ນີ້ຄວນຈະເພີ່ມຂຶ້ນ
ປະສິດທິພາບຂອງເຄື່ອງມືແລະຫຼຸດລົງການນໍາໃຊ້ຫນ່ວຍຄວາມຈໍາຂອງລະບົບ.
-nostdinc
ຢ່າຄົ້ນຫາຢູ່ໃນລະບົບມາດຕະຖານ GCC ສໍາລັບໄຟລ໌ສ່ວນຫົວ.
- ລະບົບ dump NAME -sysroot DIR
ຊອກຫາຫ້ອງສະຫມຸດທີ່ແບ່ງປັນແລະໄຟລ໌ສ່ວນຫົວທັງຫມົດໃນໄດເລກະທໍລີ DIR, ສ້າງ XML
ຄໍາອະທິບາຍແລະສ້າງ ABI dumps ສໍາລັບແຕ່ລະຫ້ອງສະຫມຸດ. ຊຸດຜົນໄດ້ຮັບຂອງ ABI dumps ສາມາດເປັນ
ປຽບທຽບ (--cmp-ລະບົບ) ກັບອີກອັນຫນຶ່ງທີ່ສ້າງຂຶ້ນສໍາລັບຮຸ່ນອື່ນຂອງການດໍາເນີນງານ
ລະບົບເພື່ອກວດສອບຄວາມເຂົ້າກັນໄດ້. ຢ່າລືມລະບຸ
- ຂ້າມ gcc ທາງເລືອກຖ້າຫາກວ່າລະບົບເປົ້າຫມາຍຂອງທ່ານຮຽກຮ້ອງໃຫ້ມີບາງສະບັບສະເພາະຂອງ GCC
compiler (ແຕກຕ່າງຈາກ host GCC). ລະບົບ dump ABI ຈະຖືກສ້າງຂຶ້ນເພື່ອ:
sys_dumps/NAME/ARCH
- ລະບົບ dump DESCRIPTOR.xml
ຄືກັນກັບທາງເລືອກທີ່ຜ່ານມາແຕ່ເອົາຕົວອະທິບາຍ XML ຂອງລະບົບເປົ້າຫມາຍເປັນ
ການປ້ອນຂໍ້ມູນ, ບ່ອນທີ່ທ່ານຄວນອະທິບາຍມັນ:
/* ພາກປະຖົມ */
/* ຊື່ຂອງລະບົບ */
/* ບັນຊີລາຍຊື່ຂອງເສັ້ນທາງໄປຫາໄຟລ໌ header ແລະ/ຫຼື
ໄດເລກະທໍລີທີ່ມີໄຟລ໌ header, ຫນຶ່ງຕໍ່ແຖວ */
/* ລາຍຊື່ເສັ້ນທາງໄປຫາຫ້ອງສະໝຸດທີ່ແບ່ງປັນ ແລະ/ຫຼື
ໄດເລກະທໍລີທີ່ມີຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ, ຫນຶ່ງຕໍ່ແຖວ */
/* ພາກສ່ວນທາງເລືອກ */
/* ລາຍຊື່ໄດເລກະທໍລີທີ່ຈະຄົ້ນຫາ
ສໍາລັບໄຟລ໌ header ທີ່ຈະສ້າງອັດຕະໂນມັດປະກອບມີເສັ້ນທາງ, ຫນຶ່ງຕໍ່ແຖວ */
/* ລາຍຊື່ໄດເລກະທໍລີທີ່ຈະຄົ້ນຫາ
ສໍາລັບຫ້ອງສະຫມຸດແບ່ງປັນເພື່ອແກ້ໄຂການເພິ່ງພາອາໄສ, ຫນຶ່ງຕໍ່ແຖວ */
/* ລາຍຊື່ໄດເລກະທໍລີທີ່ມີເຄື່ອງມືທີ່ໃຊ້
ສໍາລັບການວິເຄາະ (GCC toolchain), ຫນຶ່ງຕໍ່ແຖວ */
/* GCC toolchain ຄໍານໍາຫນ້າ.
ຕົວຢ່າງ:
arm-linux-gnueabi arm-none-symbianelf */
/* ທາງເລືອກ GCC ເພີ່ມເຕີມ, ຫນຶ່ງຕໍ່ແຖວ */
-sysinfo DIR
ທາງເລືອກນີ້ຄວນຈະຖືກນໍາໃຊ້ກັບ - ລະບົບ dump ທາງເລືອກທີ່ຈະ dump ABI ຂອງການດໍາເນີນງານ
ລະບົບ ແລະກຳນົດຄ່າຂະບວນການຖິ້ມຂີ້ເຫຍື້ອ. ທ່ານສາມາດຊອກຫາຕົວຢ່າງໃນຊຸດ:
ໂມດູນ/ເປົ້າໝາຍ/{unix, symbian, windows}
-cmp-ລະບົບ -d1 sys_dumps/NAME1/ARCH -d2 sys_dumps/NAME2/ARCH
ປຽບທຽບສອງລະບົບ ABI dumps. ສ້າງບົດລາຍງານຄວາມເຂົ້າກັນໄດ້ສໍາລັບແຕ່ລະຫ້ອງສະຫມຸດແລະ
ບົດລາຍງານ HTML ທົ່ວໄປລວມທັງສະຫຼຸບຜົນການທົດສອບສໍາລັບຫ້ອງສະຫມຸດທີ່ກວດສອບທັງຫມົດ.
ບົດລາຍງານຈະຖືກສ້າງຂຶ້ນເພື່ອ:
sys_compat_reports/NAME1_to_NAME2/ARCH
-libs-list PATH
ໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງຫ້ອງສະຫມຸດ, ທີ່ຄວນຈະຖືກ dumped ໂດຍ - ລະບົບ dump ທາງເລືອກ
ຫຼືຄວນໄດ້ຮັບການກວດກາໂດຍ -cmp-ລະບົບ ທາງເລືອກ.
-ຕໍ່ໄປ|- ຂະຫຍາຍ
ຖ້າຫ້ອງສະຫມຸດ A ຂອງທ່ານຄວນຈະຖືກນໍາໃຊ້ໂດຍຫ້ອງສະຫມຸດ B ອື່ນແລະທ່ານຕ້ອງການຄວບຄຸມ
ABI ຂອງ B, ຫຼັງຈາກນັ້ນທ່ານຄວນເປີດໃຊ້ທາງເລືອກນີ້. ເຄື່ອງມືຈະກວດສອບການປ່ຽນແປງ
ໃນທຸກປະເພດຂໍ້ມູນ, ເຖິງແມ່ນວ່າພວກເຂົາເຈົ້າບໍ່ໄດ້ຖືກນໍາໃຊ້ໂດຍການທໍາງານໃດຫນຶ່ງໃນຫ້ອງສະຫມຸດ A. ດັ່ງກ່າວ
ປະເພດຂໍ້ມູນບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງຫ້ອງສະຫມຸດ A ABI, ແຕ່ອາດຈະເປັນສ່ວນຫນຶ່ງຂອງ ABI ຂອງ B
ຫ້ອງສະຫມຸດ.
ໂຄງການສັ້ນແມ່ນ:
app C (ແຕກ) -> lib B (ແຕກ ABI) -> lib A (ABI ຄົງທີ່)
-q|-ງຽບ
ພິມຂໍ້ຄວາມທັງໝົດໃສ່ໄຟລ໌ແທນ stdout ແລະ stderr. ເສັ້ນທາງເລີ່ມຕົ້ນ (ສາມາດເປັນ
ປ່ຽນແປງໂດຍ -log-path ທາງເລືອກ):
logs/run.log
-stdout
ພິມຜົນການວິເຄາະ (ບົດລາຍງານຄວາມເຂົ້າກັນໄດ້ແລະ ABI dumps) ເພື່ອ stdout ແທນທີ່ຈະເປັນ
ການສ້າງໄຟລ໌. ນີ້ຈະອະນຸຍາດໃຫ້ຂໍ້ມູນທໍ່ກັບໂຄງການອື່ນໆ.
- ລາຍງານຮູບແບບ ຍທຂ
ປ່ຽນຮູບແບບຂອງບົດລາຍງານຄວາມເຂົ້າກັນໄດ້. ຮູບແບບ:
htm - ຮູບແບບ HTML (ຄ່າເລີ່ມຕົ້ນ) xml - ຮູບແບບ XML
- ຮູບແບບ dump ຍທຂ
ປ່ຽນຮູບແບບຂອງ ABI dump. ຮູບແບບ:
perl - ຂໍ້ມູນ::ຮູບແບບ dumper (ຄ່າເລີ່ມຕົ້ນ) xml - ຮູບແບບ XML
-xml
ນາມແຝງສໍາລັບ: --report-format=xml or --dump-format=xml
- ພາສາ ພາສາ
ຕັ້ງພາສາຫ້ອງສະໝຸດ (C ຫຼື C++). ທ່ານສາມາດນໍາໃຊ້ທາງເລືອກນີ້ຖ້າເຄື່ອງມືບໍ່ສາມາດ
ກວດຫາພາສາອັດຕະໂນມັດ. ຕົວເລືອກນີ້ອາດຈະເປັນປະໂຫຍດສໍາລັບການກວດສອບສ່ວນຫົວຂອງ C-library
(--lang=Cin --headers ເທົ່ານັ້ນ or -- ຂະຫຍາຍ ຮູບແບບ.
-ໂຄ້ງ ໂຄ້ງ
ຕັ້ງຄ່າສະຖາປັດຕະຍະກຳຫ້ອງສະໝຸດ (x86, x86_64, ia64, ແຂນ, ppc32, ppc64, s390, ແລະອື່ນໆ). ໄດ້
ທາງເລືອກແມ່ນເປັນປະໂຫຍດຖ້າເຄື່ອງມືບໍ່ສາມາດກວດພົບສະຖາປັດຕະຍະກໍາທີ່ຖືກຕ້ອງຂອງວັດສະດຸປ້ອນ
ວັດຖຸ.
- ຄູ່|-bin|-abi
ສະແດງບັນຫາຄວາມເຂົ້າກັນໄດ້ "Binary" ເທົ່ານັ້ນ. ສ້າງລາຍງານໃຫ້:
compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html
- ແຫຼ່ງ|-src|-api
ສະແດງບັນຫາຄວາມເຂົ້າກັນໄດ້ຂອງ "ແຫຼ່ງ" ເທົ່ານັ້ນ. ສ້າງລາຍງານໃຫ້:
compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html
- ຮັບຜົນກະທົບຈໍາກັດ ຈຳ ກັດ
ຈໍານວນສູງສຸດຂອງສັນຍາລັກທີ່ໄດ້ຮັບຜົນກະທົບທີ່ລະບຸໄວ້ພາຍໃຕ້ຄໍາອະທິບາຍຂອງການປ່ຽນແປງ
ພິມໃນບົດລາຍງານ.
ອື່ນໆ ທາງເລືອກ:
- ທົດສອບ
ດໍາເນີນການທົດສອບພາຍໃນ. ສ້າງສອງສະບັບທີ່ບໍ່ເຂົ້າກັນໄດ້ສອງຂອງຫ້ອງສະຫມຸດຕົວຢ່າງແລະ
ດໍາເນີນການເຄື່ອງມືເພື່ອກວດເບິ່ງພວກເຂົາສໍາລັບຄວາມເຂົ້າກັນໄດ້. ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ຫນຶ່ງເພື່ອກວດເບິ່ງວ່າ
ເຄື່ອງມືເຮັດວຽກຢ່າງຖືກຕ້ອງໃນສະພາບແວດລ້ອມໃນປະຈຸບັນ.
-test-dump
ການທົດສອບຄວາມສາມາດໃນການສ້າງ, ອ່ານແລະປຽບທຽບ ABI dumps.
-ແມງໄມ້
ໂໝດດີບັກ. ພິມຂໍ້ມູນດີບັກເທິງໜ້າຈໍ. ບັນທຶກຂັ້ນຕອນການວິເຄາະລະດັບປານກາງ
ໃນໄດເຣັກທໍຣີ debug:
debug/LIB_NAME/VERSION/
ຍັງພິຈາລະນາການນໍາໃຊ້ -- ຖິ້ມ ທາງເລືອກສໍາລັບການ debugging ເຄື່ອງມື.
-cpp-ເຂົ້າກັນໄດ້
ຖ້າໄຟລ໌ຫົວຂອງທ່ານຖືກຂຽນເປັນພາສາ C ແລະສາມາດຖືກລວບລວມໂດຍ G++
compiler (ie ບໍ່ໃຊ້ C++ keywords), ຫຼັງຈາກນັ້ນທ່ານສາມາດບອກເຄື່ອງມືກ່ຽວກັບເລື່ອງນີ້ແລະ
ເລັ່ງການວິເຄາະ.
-cpp-ບໍ່ເຂົ້າກັນໄດ້
ຕັ້ງຄ່າທາງເລືອກນີ້ຖ້າການປ້ອນໄຟລ໌ສ່ວນຫົວ C ໃຊ້ຄໍາທີ່ໃຊ້ C++.
-p|-params PATH
ເສັ້ນທາງໄປຫາໄຟລ໌ທີ່ມີຊື່ພາລາມິເຕີຟັງຊັນ. ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອປັບປຸງບົດລາຍງານ
ເບິ່ງວ່າໄຟລ໌ສ່ວນຫົວຂອງຫ້ອງສະໝຸດບໍ່ມີຊື່ພາຣາມິເຕີ. ຮູບແບບໄຟລ໌:
func1;param1;param2;param3 ... func2;param1;param2;param3 ...
...
- ຄວາມສຳພັນ PATH
ແທນທີ່ {RELPATH} macro ເປັນ PATH ໃນ XML-descriptor ທີ່ໃຊ້ສໍາລັບການ dumping ຫ້ອງສະຫມຸດ
ABI (ເບິ່ງ - ຖິ້ມ ທາງເລືອກ).
-relpath1 PATH
ແທນທີ່ {RELPATH} macro ເປັນ PATH ໃນຕົວອະທິບາຍ XML ທຳອິດ (-d1).
-relpath2 PATH
ແທນທີ່ {RELPATH} macro ເປັນ PATH ໃນຕົວອະທິບາຍ XML ທີ 2 (-d2).
- ເສັ້ນທາງ dump PATH
ລະບຸເສັ້ນທາງໄຟລ໌ *.abi.tar.gz ຫຼື *.abi ບ່ອນທີ່ຈະສ້າງການຖິ້ມ ABI. ຄ່າເລີ່ມຕົ້ນ:
abi_dumps/LIB_NAME/LIB_NAME_VERSION.abi.tar.gz
- ຄັດ
ເປີດໃຊ້ການຈັດລຽງຂໍ້ມູນໃນ ABI dumps.
- ລາຍງານເສັ້ນທາງ PATH
ເສັ້ນທາງໄປສູ່ບົດລາຍງານຄວາມເຂົ້າກັນໄດ້. ຄ່າເລີ່ມຕົ້ນ:
compat_reports/LIB_NAME/V1_to_V2/compat_report.html
-bin-report-path PATH
ເສັ້ນທາງໄປຫາບົດລາຍງານຄວາມເຂົ້າກັນໄດ້ "Binary". ຄ່າເລີ່ມຕົ້ນ:
compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html
-src-report-path PATH
ເສັ້ນທາງໄປຫາ "ແຫຼ່ງ" ລາຍງານຄວາມເຂົ້າກັນໄດ້. ຄ່າເລີ່ມຕົ້ນ:
compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html
-log-path PATH
ເສັ້ນທາງບັນທຶກສໍາລັບຂໍ້ຄວາມທັງຫມົດ. ຄ່າເລີ່ມຕົ້ນ:
logs/LIB_NAME/VERSION/log.txt
-log1-path PATH
ເສັ້ນທາງບັນທຶກສໍາລັບສະບັບທີ 1 ຂອງຫ້ອງສະຫມຸດ. ຄ່າເລີ່ມຕົ້ນ:
logs/LIB_NAME/V1/log.txt
-log2-path PATH
ເສັ້ນທາງບັນທຶກສຳລັບຫ້ອງສະໝຸດສະບັບທີ 2. ຄ່າເລີ່ມຕົ້ນ:
logs/LIB_NAME/V2/log.txt
- ໂຫມດບັນທຶກ MODE
ປ່ຽນໂໝດບັນທຶກ. ໂໝດ:
w - ຂຽນທັບບັນທຶກເກົ່າ (ຄ່າເລີ່ມຕົ້ນ) a - ຕື່ມຂໍ້ມູນບັນທຶກເກົ່າ n - ບໍ່ຂຽນບັນທຶກໃດໆ
- ລາຍຊື່ຜົນກະທົບ
ສ້າງໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງສັນຍາລັກທີ່ບໍ່ເຂົ້າກັນໄດ້ຢູ່ຂ້າງ HTML ທີ່ເຂົ້າກັນໄດ້
ລາຍງານ. ໃຊ້ຄໍາສັ່ງ 'c++filt @file' ຈາກ GNU binutils ເພື່ອ unmangle ສັນຍາລັກ C++ ໃນ
ໄຟລ໌ທີ່ສ້າງຂຶ້ນ. ຊື່ເລີ່ມຕົ້ນ:
abi_affected.txt src_affected.txt
- ອົງປະກອບ NAME
ຊື່ອົງປະກອບໃນຫົວຂໍ້ແລະບົດສະຫຼຸບຂອງບົດລາຍງານ HTML. ຄ່າເລີ່ມຕົ້ນ:
ຫ້ອງສະຫມຸດ
-ຫົວຂໍ້ NAME
ປ່ຽນຊື່ຫ້ອງສະໝຸດໃນຫົວຂໍ້ລາຍງານເປັນ NAME. ໂດຍຄ່າເລີ່ມຕົ້ນຈະຖືກສະແດງ a
ຊື່ທີ່ລະບຸໂດຍ -l ທາງເລືອກ.
- ຂໍ້ມູນພິເສດ DIR
ຖິ້ມຂໍ້ມູນເພີ່ມເຕີມໃສ່ DIR.
- ການຖິ້ມຂີ້ເຫຍື້ອພິເສດ
ສ້າງ dump ABI ຂະຫຍາຍທີ່ມີສັນຍາລັກທັງຫມົດຈາກຫນ່ວຍແປ.
- ຜົນບັງຄັບໃຊ້
ພະຍາຍາມໃຊ້ທາງເລືອກນີ້ຖ້າເຄື່ອງມືບໍ່ເຮັດວຽກ.
- ຄວາມທົນທານ LEVEL
ນຳໃຊ້ຊຸດຂອງ heuristics ເພື່ອລວບລວມໄຟລ໌ header ການປ້ອນຂໍ້ມູນຢ່າງສຳເລັດຜົນ. ເຈົ້າສາມາດ
ເຮັດໃຫ້ລະດັບຄວາມທົນທານຈໍານວນຫນຶ່ງໂດຍການເຂົ້າຮ່ວມໃຫ້ເຂົາເຈົ້າເຂົ້າໄປໃນສາຍດຽວ (e.g. 13, 124,
ແລະອື່ນໆ). ລະດັບ:
1 - ຂ້າມສ່ວນຫົວທີ່ບໍ່ແມ່ນ Linux (ເຊັ່ນ: win32_*.h, ແລະອື່ນໆ) 2 - ຂ້າມສ່ວນຫົວພາຍໃນ (ເຊັ່ນ:
*_p.h, impl/*.h, ແລະອື່ນໆ) 3 - ຂ້າມສ່ວນຫົວທີ່ລວມເອົາສ່ວນຫົວທີ່ບໍ່ແມ່ນ Linux 4 - ຂ້າມ.
ສ່ວນຫົວລວມໂດຍຜູ້ອື່ນ
-ທົນທານ
ເປີດໃຊ້ລະດັບຄວາມທົນທານສູງສຸດ [1234].
- ກວດສອບ
ກວດເບິ່ງຄວາມສົມບູນຂອງ ABI dump.
-ໄວ
ການວິເຄາະໄວ. ປິດໃຊ້ງານການກວດສອບບາງຕົວຢ່າງແມ່ແບບ.
-skip-ພາຍໃນ-ສັນຍາລັກ PATTERN
ຢ່າກວດເບິ່ງສັນຍາລັກທີ່ກົງກັບຮູບແບບ.
-skip-internal-types PATTERN
ຢ່າກວດເບິ່ງປະເພດທີ່ກົງກັບຮູບແບບ.
ລາຍງານ:
ບົດລາຍງານຄວາມເຂົ້າກັນໄດ້ຈະຖືກສ້າງຂື້ນເພື່ອ:
compat_reports/LIB_NAME/V1_to_V2/compat_report.html
ບັນທຶກຈະຖືກສ້າງເປັນ:
logs/LIB_NAME/V1/log.txt logs/LIB_NAME/V2/log.txt
ອອກ ລະຫັດ:
0 - ເຂົ້າກັນໄດ້. ເຄື່ອງມືດັ່ງກ່າວໄດ້ດໍາເນີນການໂດຍບໍ່ມີຂໍ້ຜິດພາດໃດໆ. non-zero - ບໍ່ເຂົ້າກັນຫຼື
ເຄື່ອງມືໄດ້ດໍາເນີນການທີ່ມີຄວາມຜິດພາດ.
ເພີ່ມເຕີມ ຂໍ້ມູນ:
http://lvc.github.io/abi-compliance-checker/
ໃຊ້ abi-compliance-checker ອອນລາຍໂດຍໃຊ້ການບໍລິການ onworks.net