นี่คือคำสั่ง goto-cc ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
cbmc - Bounded Model Checker สำหรับโปรแกรม C/C++ และ Java
เรื่องย่อ
ซีบีเอ็มซี [--คุณสมบัติ รหัสทรัพย์สิน] ไฟล์.ค ...
ซีบีเอ็มซี [--แสดง-คุณสมบัติ] ไฟล์.ค ...
ซีบีเอ็มซี [--คุณสมบัติทั้งหมด] ไฟล์.ค ...
ไปที่ซีซี [-ผม รวมเส้นทาง] [-ค] ไฟล์.ค [-หรือ outfile.o]
ไปที่เครื่องดนตรี แฟ้ม ออกจากไฟล์
เฉพาะตัวเลือกที่มีประโยชน์ที่สุดเท่านั้นที่แสดงไว้ที่นี่ ดูด้านล่างสำหรับส่วนที่เหลือ
DESCRIPTION
ซีบีเอ็มซี สร้างร่องรอยที่แสดงให้เห็นว่าสามารถละเมิดการยืนยันได้อย่างไรหรือพิสูจน์ได้ว่า
การยืนยันไม่สามารถละเมิดได้ภายในจำนวนการวนซ้ำที่กำหนด CBMC อ่านได้
ซอร์สโค้ดโดยตรงหรือ goto-binary ที่สร้างโดย goto-cc โปรแกรม Java ถูกกำหนดเป็น
ไฟล์คลาส หากไม่มีตัวเลือกเพิ่มเติม cbmc จะตรวจสอบคุณสมบัติทั้งหมด (โดยอัตโนมัติ
สร้างหรือกำหนดโดยผู้ใช้) พบในโปรแกรม หากมีคุณสมบัติประการใดสามารถ
ละเมิด พิมพ์ตัวอย่างโต้แย้งและยกเลิกการวิเคราะห์ การวิเคราะห์สามารถ
จำกัดเฉพาะคุณสมบัติเฉพาะด้วยตัวเลือก --property ผลการตรวจสอบ
สำหรับคุณสมบัติทั้งหมดสามารถรับได้โดยใช้ตัวเลือก --all-properties
ไปที่ซีซี อ่านซอร์สโค้ดและสร้าง goto-binary อินเทอร์เฟซบรรทัดคำสั่งคือ
ออกแบบมาเพื่อเลียนแบบของ gcc(1). โดยเฉพาะอย่างยิ่งหมายเหตุว่า ไปที่ซีซี แยกความแตกต่างระหว่าง
การคอมไพล์และเชื่อมโยงเฟส เช่นเดียวกับ gcc ซีบีเอ็มซี คาดว่าจะเป็น goto-binary ซึ่ง
การเชื่อมโยงเสร็จสมบูรณ์
ไปที่เครื่องดนตรี อ่าน goto-binary ทำการแปลงโปรแกรมที่กำหนดแล้ว
เขียนโปรแกรมผลลัพธ์เป็น goto-binary บนแผ่นดิสก์
โฟลว์ปกติคือ (1) แปลซอร์สเป็น goto-binary โดยใช้ goto-cc จากนั้น (2)
ดำเนินการวัดด้วย goto-instrument และสุดท้าย (3) ทำการวิเคราะห์ด้วย
ซีบีเอ็มซี
OPTIONS
ส่วนหน้า OPTIONS (cbmc และ ไปที่ซีซี)
-ฉันเส้นทาง
ตั้งค่าเส้นทางรวม (C/C++)
-D มาโคร
กำหนดมาโครพรีโปรเซสเซอร์ (C/C++)
--การประมวลผลล่วงหน้า
หยุดหลังจากประมวลผลล่วงหน้า
--show-สัญลักษณ์-ตาราง
แสดงตารางสัญลักษณ์
--show-goto-ฟังก์ชั่น
แสดงโปรแกรม goto
สถาปัตยกรรม OPTIONS (cbmc และ ไปที่ซีซี)
ซีบีเอ็มซี โดยค่าเริ่มต้นจะใช้การตั้งค่าสถาปัตยกรรมที่ตรงกับการตั้งค่าของเครื่อง ซีบีเอ็มซี is
ทำงานบน กล่าวคือ การตั้งค่าด้านล่างจำเป็นเฉพาะเมื่อตรวจสอบซอฟต์แวร์ที่เป็น
หมายถึงการทำงานบนสถาปัตยกรรมหรือระบบปฏิบัติการอื่น ไปที่ซีซี สร้าง goto-binary สำหรับ a
สถาปัตยกรรมเฉพาะ กล่าวคือ สถาปัตยกรรมไม่สามารถเปลี่ยนแปลงได้หลังจาก goto-binary is
สร้างขึ้น
---16, --32, --64
กำหนดความกว้างของ int
--LP64, --ILP64, --LLP64, --ILP32, --LP32
กำหนดความกว้างของ int ยาวและพอยน์เตอร์
--น้อย-endian
อนุญาตการแปลงคำแบบไบต์เอนด์เล็กน้อย
--บิ๊กเอนด์
อนุญาตการแปลงคำแบบไบท์เอนด์ขนาดใหญ่
--unsigned-ถ่าน
ทำให้ "char" ไม่ได้ลงนามโดยค่าเริ่มต้น
--arch กำหนดสถาปัตยกรรมเป้าหมาย
--os ตั้งเป้าหมายระบบปฏิบัติการ
--no-โค้ง
อย่าตั้งสถาปัตยกรรม
--ไม่มีห้องสมุด
ปิดใช้งานไลบรารี C นามธรรมในตัว
-- ปัดเศษไปใกล้ที่สุด -- ปัดเศษเพื่อบวก-inf
โหมดการปัดเศษทศนิยมของ IEEE เพื่อใช้เมื่อโปรแกรมเริ่มทำงาน (ค่าเริ่มต้นคือ round
ที่ใกล้ที่สุด) โปรแกรมที่อยู่ระหว่างการตรวจสอบสามารถแทนที่การตั้งค่านี้ได้ เช่น with
เทศกาล(3)
โปรแกรม เครื่องมือวัด OPTIONS (cbmc และ goto-ตราสาร)
ทั้งสอง ซีบีเอ็มซี และ ไปที่เครื่องดนตรี สามารถสร้างการยืนยันที่จับข้อผิดพลาดทั่วไปที่เฉพาะเจาะจงได้
ดังที่แสดงด้านล่าง
--ขอบเขต-ตรวจสอบ
เปิดใช้งานการตรวจสอบขอบเขตอาร์เรย์
--div-by-zer-check
เปิดใช้งานการหารด้วยการตรวจสอบเป็นศูนย์
--ตัวชี้-ตรวจสอบ
เปิดใช้งานการตรวจสอบตัวชี้
--เซ็น-ล้น-ตรวจสอบ
เปิดใช้งานการตรวจสอบเลขคณิตมากเกินและน้อยเกินไปสำหรับเลขคณิตจำนวนเต็มที่มีเครื่องหมาย
--unsigned-overflow-ตรวจสอบ
เปิดใช้งานการตรวจสอบเลขคณิตมากเกินและน้อยเกินไปสำหรับเลขคณิตจำนวนเต็มที่ไม่ได้ลงนาม
--แนน-เช็ค
ตรวจสอบการคำนวณจุดลอยตัวสำหรับ NaN
--ไม่มีการยืนยัน
ละเว้นการยืนยันที่ผู้ใช้ให้มา
--ไม่มีสมมติฐาน
ละเว้นสมมติฐานที่ผู้ใช้ให้มา
--ป้ายชื่อ-error-label
ตรวจสอบว่าป้ายที่ระบุไม่สามารถเข้าถึงได้
โปรแกรม เครื่องมือวัด OPTIONS (goto-ตราสาร เท่านั้น)
ไปที่เครื่องดนตรี รองรับการแปลงโปรแกรมเพิ่มเติมที่ซับซ้อนยิ่งขึ้น
--nondet-ระเหย
ทำให้อ่านจากตัวแปรผันผวน non-deterministic
--isr ฟังก์ชัน
เครื่องมือประจำบริการขัดจังหวะด้วยชื่อที่กำหนด
--mmio เครื่องมือที่แมปหน่วยความจำ I / O
--nondet-สถิตย์
ตัวแปรที่มีอายุการใช้งานแบบคงที่จะถูกเริ่มต้นโดยไม่ได้กำหนดขึ้นเอง
--การถ่ายโอนข้อมูล-c
เอาต์พุตซอร์สโค้ด ANSI-C แทนไบนารี goto
บีเอ็มซี OPTIONS (ซีบีเอ็มซี)
--คุณสมบัติทั้งหมด
รายงานสถานะทรัพย์สินทั้งหมด
--แสดงคุณสมบัติ
แสดงเฉพาะคุณสมบัติ
--show-ลูป
แสดงลูปในโปรแกรม
--cover-ยืนยัน
ตรวจสอบการยืนยันที่สามารถเข้าถึงได้
--ชื่อฟังก์ชัน
ตั้งชื่อฟังก์ชันหลัก
--รหัสพร็อพเพอร์ตี้
ตรวจสอบเฉพาะคุณสมบัติเฉพาะด้วยตัวระบุที่กำหนด
--โปรแกรมเท่านั้น
แสดงเฉพาะนิพจน์โปรแกรม
--ความลึก nr
จำกัดความลึกในการค้นหา
--คลาย nr
คลายลูปไม่มีครั้ง
--คลี่คลาย L:B,...
คลายลูป L ด้วยขอบเขต B (ใช้ --show-loops เพื่อรับรหัสลูป)
--show-vcc
แสดงเงื่อนไขการตรวจสอบ
--slice-สูตร
ลบงานที่ไม่เกี่ยวข้องกับทรัพย์สิน
--ไม่คลี่คลาย-ยืนยัน
อย่าสร้างคำยืนยันที่คลี่คลาย
--ไม่-ชื่อ-สวย
อย่าลดความซับซ้อนของตัวระบุ
ย้อนกลับ OPTIONS (ซีบีเอ็มซี)
--ไดแมค
สร้าง CNF ในรูปแบบ DIMACS สำหรับใช้งานโดยตัวแก้ไข SAT ภายนอก
--สวย-โลภ
เสริมสวยตัวอย่างโต้แย้ง (โลภฮิวริสติก)
--smt1 เอาต์พุตเป้าหมายย่อยในไวยากรณ์ SMT1 (ทดลอง)
--smt2 เอาต์พุตเป้าหมายย่อยในไวยากรณ์ SMT2 (ทดลอง)
--บูเลเตอร์
ใช้ Boolector (ทดลอง)
--คณิตศาสตร์
ใช้ MathSAT (ทดลอง)
--cvc ใช้ CVC3 (ทดลอง)
--เยส
ใช้ Yices (ทดลอง)
--z3 ใช้ Z3 (ทดลอง)
--ปรับแต่ง
ใช้ขั้นตอนการปรับแต่ง (ทดลอง)
--outfile ชื่อไฟล์
สูตรผลลัพธ์ไปยังไฟล์ที่กำหนด
--arrays-uf-ไม่เคย
อย่าเปลี่ยนอาร์เรย์เป็นฟังก์ชันที่ไม่ได้ตีความ
--arrays-uf-เสมอ
เปลี่ยนอาร์เรย์ให้เป็นฟังก์ชันที่ไม่ได้ตีความเสมอ
และพวกเรา
เครื่องมือทั้งหมดให้เกียรติตัวแปรสภาพแวดล้อม TMPDIR เมื่อสร้างไฟล์ชั่วคราวและ
ไดเรกทอรี นอกจากนี้โปรดทราบว่าตัวประมวลผลล่วงหน้าที่ใช้โดย CBMC จะใช้สภาพแวดล้อม
ตัวแปรเพื่อค้นหาไฟล์ส่วนหัว GOTO-CC มุ่งมั่นที่จะยอมรับตัวแปรสภาพแวดล้อมทั้งหมดที่
GCC ทำได้
ลิขสิทธิ์
2001-2014, แดเนียล โครนิ่ง, เอ็ดมันด์ คลาร์ก
ใช้ goto-cc ออนไลน์โดยใช้บริการ onworks.net