นี่คือคำสั่ง creduce ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
creduce - โปรแกรมลด C และ C ++
DESCRIPTION
creduce 2.5.0 (ไม่ทราบ) -- ตัวลดโปรแกรม C และ C++
C-Reduce ต้องการ "การทดสอบความน่าสนใจ" และไฟล์อย่างน้อยหนึ่งไฟล์ที่จะลดซึ่งจะต้อง
เขียนได้ การทดสอบความน่าสนใจเป็นโปรแกรมปฏิบัติการ (โดยปกติคือเชลล์สคริปต์) ที่
คืนค่า 0 เมื่อไฟล์ที่ลดขนาดบางส่วนน่าสนใจ (ตัวเลือกสำหรับการลดเพิ่มเติม)
และคืนค่าที่ไม่ใช่ศูนย์เมื่อไฟล์ที่ลดขนาดบางส่วนไม่น่าสนใจ (ไม่ใช่ตัวเลือกสำหรับ
ลดเพิ่มเติม -- ไฟล์ที่ไม่น่าสนใจทั้งหมดจะถูกยกเลิก)
C-Reduce รันการทดสอบความน่าสนใจในไดเร็กทอรีชั่วคราวใหม่ที่มีเพียง
ไฟล์ที่ลดขนาดบางส่วน ดังนั้นเมื่อการทดสอบความน่าสนใจตรวจสอบบางส่วน
ลดขนาดไฟล์ ต้องทำโดยใช้เส้นทางสัมพัทธ์ไปยังไดเร็กทอรีการทำงานปัจจุบัน บน
ในทางกลับกัน เมื่อการทดสอบความน่าสนใจหมายถึงไฟล์ใดๆ ที่ไม่ได้ลดขนาดลง
ควรทำโดยใช้เส้นทางที่แน่นอน
การทดสอบความน่าสนใจไม่ควรคาดหวังอาร์กิวเมนต์บรรทัดคำสั่งใดๆ มันควรจะเป็น
กำหนดและอาจต้องการบังคับใช้การจำกัดทรัพยากรบนคำสั่งย่อยที่เรียกใช้
(เช่นการใช้ ulimit) โดยเฉพาะอย่างยิ่ง C-Reduce บางครั้งก็แนะนำอนันต์
วนซ้ำในโปรแกรมจะลดลง ดังนั้นหากการทดสอบความน่าสนใจรัน
โปรแกรมที่คอมไพล์แล้ว ก็น่าจะทำได้ภายใต้การหมดเวลา
ตัวอย่างเช่น หากคุณพิจารณาว่าไฟล์นั้นน่าสนใจหาก vectorizer ของ GCC เริ่มทำงาน
ขณะรวบรวม คุณอาจใช้การทดสอบความน่าสนใจนี้:
gcc -w -O3 ฟู.ซี -S && grep xmm foo.s
หากต้องการดูว่าการทดสอบความน่าสนใจของคุณได้ผลหรือไม่ ให้ลองใช้คำสั่งเหล่านี้:
DIR=`mktemp -d` cp file_to_reduce [ไฟล์เพิ่มเติมเพื่อลด] $DIR cd $DIR
/path/to/น่าสนใจ_test ก้อง $?
สิ่งนี้จะส่งผลให้ "0" ถูกสะท้อนไปยังเทอร์มินัล หากสิ่งนี้ไม่เกิดขึ้น
การทดสอบความน่าสนใจมีข้อบกพร่องและ C-Reduce จะใช้ไม่ได้
หากคุณไม่เคยเขียนแบบทดสอบความน่าสนใจมาก่อน โปรดดูบทช่วยสอนนี้สำหรับ
คำแนะนำเพิ่มเติม:
https://embed.cs.utah.edu/creduce/using/
หากเป็นไปได้ ให้รัน C-Reduce บนโค้ดที่ประมวลผลล่วงหน้า ซึ่งสร้างขึ้นโดยใช้:
gcc -E -P ไฟล์.ค
หากคุณไม่สามารถลดโค้ดที่ประมวลผลล่วงหน้าได้ คุณสามารถลดเฉพาะโค้ดที่ไม่ได้ประมวลผลล่วงหน้าได้
file หรืออย่างอื่นทำการลดขนาดไฟล์หลายไฟล์ในไฟล์และสกรรมกริยารวมถึง (หรือ
ส่วนย่อยใด ๆ ของพวกเขา) ในกรณีแรก คุณต้องตั้งค่า CREDUCE_INCLUDE_PATH
ตัวแปรสภาพแวดล้อมไปยังรายการที่คั่นด้วยเครื่องหมายทวิภาคของไดเรกทอรี include เพื่อ
clang_delta เพื่อค้นหา
หากการทดสอบความน่าสนใจของคุณเกี่ยวข้องกับ cross compiler และลักษณะของ
ข้ามเป้าหมายแตกต่างจากโฮสต์ คุณจะต้องตั้งค่า CREDUCE_TARGET_TRIPLE ให้ตรงกับ
ข้ามเป้าหมาย นี่เป็นสิ่งสำคัญอย่างยิ่งหากคุณกำลังทำงานกับโค้ดที่ไม่ได้ประมวลผลล่วงหน้า
และใช้ CREDUCE_INCLUDE_PATH
กด "s" เมื่อใดก็ได้เพื่อข้ามไปยังรอบถัดไป (คุณลักษณะนี้ถูกปิดใช้งานเว้นแต่ Perl
โมดูล Term::ReadKey มีอยู่ในระบบของคุณ)
สรุป of ตัวเลือก:
--เพิ่มผ่าน
เพิ่มบัตรผ่านที่ระบุในตารางเวลา
--ยัง-น่าสนใจ
รหัสออกจากกระบวนการ (ปกติในช่วง 64-113) ซึ่งเมื่อ
กลับโดยการทดสอบความน่าสนใจจะทำให้ C-Reduce บันทึกสำเนาของ
ตัวแปร [ค่าเริ่มต้น: -หนึ่ง]
--debug
พิมพ์ข้อมูลการดีบัก
--die-on-pass-bug
ยุติ C-Reduce หากบัตรผ่านพบปัญหาที่ไม่ร้ายแรง
--max-การปรับปรุง
การปรับปรุงขนาดไฟล์ที่ใหญ่ที่สุดจากการแปลงครั้งเดียวที่ C-Reduce ควร
ยอมรับ (มีประโยชน์ในการชะลอ C-Reduce เท่านั้น)
--NS
จำนวนคอร์ที่ใช้ C-Reduce พยายามเลือกการตั้งค่าที่ดีโดยอัตโนมัติ แต่มันคือ
ตัวเลือกอาจต่ำหรือสูงเกินไปสำหรับสถานการณ์ของคุณ [ค่าเริ่มต้น: 2]
--ไม่มีค่าเริ่มต้น-ผ่าน
เริ่มด้วยตารางบัตรเปล่า
--ไม่ยอมแพ้
อย่ายอมแพ้กับบัตรที่ยังไม่คืบหน้าถึง 50000 รอบ
--โนคิล
รอให้อินสแตนซ์คู่ขนานยุติลงเองแทนที่จะฆ่าพวกมัน (เท่านั้น
มีประโยชน์สำหรับการดีบัก)
--พิมพ์-diff
แสดงการเปลี่ยนแปลงที่เกิดจากการแปลง สำหรับการดีบัก
--ฆ่าเชื้อ
พยายามปิดบังรายละเอียดจากไฟล์ต้นฉบับ
--save-อุณหภูมิ
ห้ามลบ /tmp/creaduce-xxxxxx ไดเร็กทอรีเกี่ยวกับการยกเลิก
--shadap
ระงับเอาต์พุตเกี่ยวกับข้อผิดพลาดภายในที่ไม่ร้ายแรง
--skip-เริ่มต้นผ่าน
ข้ามผ่านเริ่มต้น (มีประโยชน์หากอินพุตลดลงบางส่วนแล้ว)
--ข้ามคีย์ปิด
ปิดใช้งานการข้ามส่วนที่เหลือของรหัสผ่านปัจจุบันเมื่อกด "s"
--สโลว์
พยายามลดให้มากขึ้น แต่อาจใช้เวลานานกว่าจะทำได้
--เรียบร้อย อย่าทำสำเนาสำรองของแต่ละไฟล์เพื่อลดขนาดเป็น file.orig
--เวลา
พิมพ์ประทับเวลาเกี่ยวกับความคืบหน้าในการลดลง
การใช้งาน: creduce [ตัวเลือก] interestingness_test file_to_reduce [เลือกไฟล์เพิ่มเติมเพื่อ
ลด]
เชื่อ --ช่วยด้วย เพื่อรับข้อมูลเพิ่มเติม
ใช้ creduce ออนไลน์โดยใช้บริการ onworks.net