goto-cc - ออนไลน์ในคลาวด์

นี่คือคำสั่ง 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



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด