ນີ້ແມ່ນຄໍາສັ່ງ goto-cc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
cbmc - ຕົວກວດສອບແບບຈຳລອງທີ່ຈຳກັດໄວ້ສຳລັບໂປຣແກຣມ C/C++ ແລະ Java
ສະຫຼຸບສັງລວມ
cbmc [--ຄຸນສົມບັດ ໄອດີຊັບສິນ] file.c ...
cbmc [--show-properties] file.c ...
cbmc [--ຄຸນສົມບັດທັງໝົດ] file.c ...
goto-cc [-ຂ້ອຍ ປະກອບມີເສັ້ນທາງ] [-c] file.c [-or outfile.o]
goto ເຄື່ອງມື infile outfile
ພຽງແຕ່ທາງເລືອກທີ່ເປັນປະໂຫຍດທີ່ສຸດແມ່ນໄດ້ລະບຸໄວ້ຢູ່ທີ່ນີ້; ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບສ່ວນທີ່ເຫຼືອ.
ລາຍລະອຽດ
cbmc ສ້າງຮ່ອງຮອຍທີ່ສະແດງໃຫ້ເຫັນວ່າການຢືນຢັນສາມາດຖືກລະເມີດ, ຫຼືພິສູດວ່າແນວໃດ
ການຢືນຢັນບໍ່ສາມາດຖືກລະເມີດພາຍໃນຈໍານວນຂອງການຊໍ້າຄືນຂອງ loops. CBMC ສາມາດອ່ານໄດ້
source-code ໂດຍກົງ, ຫຼື goto-binary ທີ່ສ້າງຂຶ້ນໂດຍ goto-cc. ໂປລແກລມ Java ໄດ້ຖືກມອບໃຫ້ເປັນ
ໄຟລ໌ຫ້ອງຮຽນ. ໂດຍບໍ່ມີທາງເລືອກເພີ່ມເຕີມ, cbmc ກວດເບິ່ງຄຸນສົມບັດທັງຫມົດ (ອັດຕະໂນມັດ
ສ້າງຂຶ້ນຫຼືຜູ້ໃຊ້ສະເພາະ) ພົບເຫັນຢູ່ໃນໂຄງການ. ຖ້າຄຸນສົມບັດໃດສາມາດເປັນ
ຖືກລະເມີດ, ຕົວຢ່າງກົງກັນຂ້າມຖືກພິມອອກແລະການວິເຄາະຖືກຍົກເລີກ. ການວິເຄາະສາມາດເປັນ
ຈຳກັດສະເພາະຊັບສິນໃດໜຶ່ງດ້ວຍຕົວເລືອກ --property. ຜົນການກວດສອບ
ສໍາລັບຄຸນສົມບັດທັງຫມົດສາມາດໄດ້ຮັບໂດຍທາງເລືອກ --all-properties.
goto-cc ອ່ານລະຫັດແຫຼ່ງ, ແລະສ້າງ goto-binary. ການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງຂອງມັນແມ່ນ
ອອກແບບມາເພື່ອ mimic ວ່າ gcc(1). ໃຫ້ສັງເກດວ່າໂດຍສະເພາະ goto-cc ຈໍາແນກລະຫວ່າງ
ການລວບລວມແລະການເຊື່ອມໂຍງໄລຍະ, ຄືກັນກັບ gcc ເຮັດ. cbmc ຄາດວ່າຈະເປັນ goto-binary ສໍາລັບທີ່
ການເຊື່ອມຕໍ່ໄດ້ຖືກສໍາເລັດ.
goto ເຄື່ອງມື ອ່ານ goto-binary, ປະຕິບັດການຫັນປ່ຽນໂຄງການ, ແລະຫຼັງຈາກນັ້ນ
ຂຽນໂຄງການຜົນໄດ້ຮັບເປັນ goto-binary ໃນແຜ່ນ.
ກະແສປົກກະຕິແມ່ນເພື່ອ (1) ການແປແຫຼ່ງເຂົ້າໄປໃນ goto-binary ໂດຍໃຊ້ goto-cc, ຈາກນັ້ນ (2)
ປະຕິບັດເຄື່ອງມືທີ່ມີ goto-instrument, ແລະສຸດທ້າຍ (3) ປະຕິບັດການວິເຄາະກັບ
cbmc.
OPTIONS
ທາງຫນ້າ OPTIONS (cbmc ແລະ goto-cc)
- ຂ້າພະເຈົ້າເສັ້ນທາງ
ກໍານົດປະກອບມີເສັ້ນທາງ (C/C++)
-D ມະຫາພາກ
ກຳນົດເມໂຄຣໂປຣເຊສເຊີກ່ອນ (C/C++)
-- ຂະບວນການກ່ອນ
ຢຸດຫຼັງຈາກການປຸງແຕ່ງກ່ອນ
--show-symbol-table
ສະແດງຕາຕະລາງສັນຍາລັກ
--show-goto-functions
ສະແດງໂຄງການ goto
ປະຫວັດສາດ OPTIONS (cbmc ແລະ goto-cc)
cbmc ໂດຍຄ່າເລີ່ມຕົ້ນໃຊ້ການຕັ້ງຄ່າສະຖາປັດຕະຍະກໍາທີ່ກົງກັບເຄື່ອງ cbmc is
ດໍາເນີນການກ່ຽວກັບ, ie, ການຕັ້ງຄ່າຂ້າງລຸ່ມນີ້ແມ່ນມີຄວາມຈໍາເປັນພຽງແຕ່ໃນເວລາທີ່ການກວດສອບຊອບແວທີ່ເປັນ
ຫມາຍເຖິງການດໍາເນີນການໃນສະຖາປັດຕະຍະກໍາທີ່ແຕກຕ່າງກັນຫຼື OS. goto-cc ສ້າງ goto-binary ສໍາລັບ a
ສະຖາປັດຕະຍະກໍາໂດຍສະເພາະ, ie, ຖາປັດຕະຍະບໍ່ສາມາດປ່ຽນແປງໄດ້ຫຼັງຈາກ goto-binary ແມ່ນ
ສ້າງຂຶ້ນ.
--16, --32, --64
ກໍານົດຄວາມກວ້າງຂອງ int
--LP64, --ILP64, --LLP64, --ILP32, --LP32
ກໍານົດຄວາມກວ້າງຂອງ int, ຍາວແລະຕົວຊີ້
--little-endian
ອະນຸຍາດໃຫ້ມີການປ່ຽນແປງຄໍາ-byte ນ້ອຍ-endian
--big-endian
ອະນຸຍາດໃຫ້ການປ່ຽນແປງຄໍາ-byte ໃຫຍ່-endian
--unsigned-char
ເຮັດໃຫ້ "char" unsigned ໂດຍຄ່າເລີ່ມຕົ້ນ
--arch ກໍານົດສະຖາປັດຕະຍະກໍາເປົ້າຫມາຍ
--os ກໍານົດລະບົບປະຕິບັດການເປົ້າຫມາຍ
--no-arch
ຢ່າຕັ້ງສະຖາປັດຕະຍະກໍາ
--ບໍ່ມີຫ້ອງສະໝຸດ
ປິດການນຳໃຊ້ຫ້ອງສະໝຸດ C abstract ໃນຕົວ
--round-to- nearest, --round-to-plus-inf, --round-to-minus-inf, --round-to-zero
IEEE ຮູບແບບການມົນຈຸດເລື່ອນທີ່ຈະນໍາໃຊ້ໃນເວລາທີ່ໂຄງການເລີ່ມຕົ້ນ (ຄ່າເລີ່ມຕົ້ນແມ່ນເປັນມົນ
ໃກ້ທີ່ສຸດ). ໂຄງການທີ່ຢູ່ພາຍໃຕ້ການກວດສອບສາມາດລົບລ້າງການຕັ້ງຄ່ານີ້, ຕົວຢ່າງ, ມີ
ງານບຸນ(3).
ຕາຕະລາງເຮັດ ຄຳ ແນະ ນຳ OPTIONS (cbmc ແລະ goto-ເຄື່ອງມື)
ທັງສອງ cbmc ແລະ goto ເຄື່ອງມື ສາມາດສ້າງການຢືນຢັນທີ່ຈັບຄວາມຜິດພາດທົ່ວໄປສະເພາະ,
ດັ່ງທີ່ໄດ້ລະບຸໄວ້ຂ້າງລຸ່ມ.
--ການກວດສອບຂອບເຂດ
ເປີດໃຊ້ການກວດສອບຂອບເຂດອາເຣ
--div-by-zero-ກວດ
ເປີດໃຊ້ການແບ່ງໂດຍສູນການກວດສອບ
--ຊີ້-ກວດ
ເປີດໃຊ້ການກວດສອບຕົວຊີ້
--signed-overflow-check
ເປີດໃຊ້ການກວດສອບເລກເລກເກີນ ແລະ underflow ສໍາລັບເລກເລກເລກທີ່ເຊັນແລ້ວ
--unsigned-overflow-check
ເປີດໃຊ້ການກວດສອບເລກເລກເກີນ ແລະ underflow ສໍາລັບເລກເລກເລກທີ່ບໍ່ໄດ້ເຊັນ
--nan-ກວດ
ກວດເບິ່ງການຄິດໄລ່ຈຸດລອຍສໍາລັບ NaN
-- ບໍ່ມີການຢືນຢັນ
ບໍ່ສົນໃຈການຢືນຢັນທີ່ໃຫ້ໂດຍຜູ້ໃຊ້
-- ບໍ່ສົມມຸດຕິຖານ
ບໍ່ສົນໃຈການສົມມຸດຕິຖານທີ່ໃຫ້ໂດຍຜູ້ໃຊ້
--error-label label
ກວດເບິ່ງວ່າປ້າຍທີ່ໃຫ້ນັ້ນບໍ່ສາມາດຕິດຕໍ່ໄດ້
ຕາຕະລາງເຮັດ ຄຳ ແນະ ນຳ OPTIONS (ເຄື່ອງມື goto ພຽງແຕ່)
goto ເຄື່ອງມື ສະຫນັບສະຫນູນຕໍ່ໄປ, ສະລັບສັບຊ້ອນ, ການຫັນໂຄງການ.
--nondet-volatile
ເຮັດໃຫ້ການອ່ານຈາກຕົວແປທີ່ບໍ່ເປັນຕົວກໍານົດ
-- ຟັງຊັ່ນ isr
ເຄື່ອງມືປະຕິບັດການບໍລິການຂັດຂວາງທີ່ມີຊື່ທີ່ໃຫ້
--mmio Instruments Memory-mapped I/O
--nondet-static
ຕົວແປທີ່ມີອາຍຸສະຖິດແມ່ນເລີ່ມຕົ້ນໂດຍບໍ່ໄດ້ກໍານົດ
-- dump-ຄ
ສົ່ງອອກລະຫັດແຫຼ່ງ ANSI-C ແທນທີ່ຈະເປັນ goto binary.
BMC OPTIONS (cbmc)
--ຄຸນສົມບັດທັງໝົດ
ລາຍງານສະຖານະຂອງຄຸນສົມບັດທັງໝົດ
--show-ຄຸນສົມບັດ
ສະແດງຄຸນສົມບັດເທົ່ານັ້ນ
--show-loops
ສະແດງ loops ໃນໂຄງການ
--cover-ຢືນຢັນ
ກວດເບິ່ງວ່າການຢືນຢັນໃດທີ່ສາມາດບັນລຸໄດ້
--ຊື່ຟັງຊັນ
ຕັ້ງຊື່ຟັງຊັນຫຼັກ
-- ລະຫັດຊັບສິນ
ພຽງແຕ່ກວດເບິ່ງຄຸນສົມບັດສະເພາະກັບຕົວລະບຸທີ່ໃຫ້
-- ໂປຣແກມເທົ່ານັ້ນ
ສະແດງພຽງແຕ່ການສະແດງອອກຂອງໂປຣແກຣມ
-- ຄວາມເລິກ Nr
ຈຳກັດຄວາມເລິກການຊອກຫາ
--unwind nr
Unwind loops ບໍ່ມີເວລາ
--unwindset L:B,...
Unwind loop L ດ້ວຍການຜູກມັດຂອງ B (ໃຊ້ --show-loops ເພື່ອເອົາ loop IDs)
--show-vcc
ສະແດງເງື່ອນໄຂການຢັ້ງຢືນ
--slice-ສູດ
ລຶບການມອບໝາຍທີ່ບໍ່ກ່ຽວຂ້ອງກັບຊັບສິນ
--no-unwinding-ຢືນຢັນ
ຢ່າສ້າງການຢືນຢັນທີ່ບໍ່ມີເຫດຜົນ
--no-pretty-names
ຢ່າເຮັດໃຫ້ຕົວລະບຸງ່າຍ
ຫລັງ OPTIONS (cbmc)
--dimacs
ສ້າງ CNF ໃນຮູບແບບ DIMACS ສໍາລັບການນໍາໃຊ້ໂດຍຕົວແກ້ໄຂ SAT ພາຍນອກ
--beautify-greedy
ເສີມສ້າງຕົວຢ່າງທີ່ກົງກັນຂ້າມ (heuristic greedy)
--smt1 Output ເປົ້າໝາຍຍ່ອຍໃນ syntax SMT1 (ທົດລອງ)
--smt2 Output ເປົ້າໝາຍຍ່ອຍໃນ syntax SMT2 (ທົດລອງ)
--boolector
ໃຊ້ Boolector (ທົດລອງ)
--ຄະນິດສາດ
ໃຊ້ MathSAT (ທົດລອງ)
--cvc ໃຊ້ CVC3 (ທົດລອງ)
--yices
ໃຊ້ Yices (ທົດລອງ)
--z3 ໃຊ້ Z3 (ທົດລອງ)
--ປັບປຸງ
ໃຊ້ຂັ້ນຕອນການປັບປຸງ (ທົດລອງ)
--outfile ຊື່ໄຟລ໌
ສູດອອກໄປຫາໄຟລ໌ທີ່ໃຫ້
--arrays-uf-ບໍ່ເຄີຍ
ຢ່າປ່ຽນ arrays ໃຫ້ເປັນຟັງຊັນທີ່ບໍ່ໄດ້ແປ
--arrays-uf-ສະເໝີ
ປ່ຽນ arrays ໃຫ້ເປັນຟັງຊັນທີ່ບໍ່ໄດ້ແປສະເໝີ
ENVIRONMENT
ເຄື່ອງມືທັງໝົດໃຫ້ກຽດກັບຕົວແປສະພາບແວດລ້ອມ TMPDIR ເມື່ອສ້າງໄຟລ໌ຊົ່ວຄາວ ແລະ
ໄດເລກະທໍລີ. ນອກຈາກນັ້ນ, ໃຫ້ສັງເກດວ່າ preprocessor ທີ່ໃຊ້ໂດຍ CBMC ຈະໃຊ້ສະພາບແວດລ້ອມ
ຕົວແປເພື່ອຊອກຫາໄຟລ໌ສ່ວນຫົວ. GOTO-CC ມີຈຸດປະສົງເພື່ອຍອມຮັບຕົວແປສະພາບແວດລ້ອມທັງຫມົດທີ່
GCC ເຮັດ.
COPYRIGHT
2001-2014, Daniel Kroening, Edmund Clarke
ໃຊ້ goto-cc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net