Ini ialah perintah creduce yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
creduce - pengurangan program C dan C++
DESCRIPTION
creduce 2.5.0 (tidak diketahui) -- pengurang program C dan C++
C-Reduce memerlukan "ujian ketertarikan" dan satu atau lebih fail untuk mengurangkan, yang semestinya
boleh ditulis. Ujian menarik ialah program boleh laku (biasanya skrip shell) yang
mengembalikan 0 apabila fail yang dikurangkan sebahagiannya menarik (calon untuk pengurangan selanjutnya)
dan mengembalikan bukan sifar apabila fail yang dikurangkan sebahagiannya tidak menarik (bukan calon untuk
pengurangan selanjutnya -- semua fail yang tidak menarik dibuang).
C-Reduce menjalankan ujian ketertarikan dalam direktori sementara baharu yang mengandungi hanya
fail yang dikurangkan sebahagiannya. Oleh itu, apabila ujian ketertarikan mengkaji sebahagiannya
fail yang dikurangkan, ia mesti berbuat demikian menggunakan laluan relatif ke direktori kerja semasa. Pada
sebaliknya, apabila ujian ketertarikan merujuk kepada mana-mana fail yang tidak dikurangkan,
ini perlu dilakukan menggunakan laluan mutlak.
Ujian ketertarikan tidak boleh mengharapkan sebarang hujah baris arahan. Ia harus
deterministik dan mungkin mahu menguatkuasakan had sumber pada sub-perintah yang digunakannya
(cth menggunakan ulimit). Khususnya, C-Reduce diketahui kadangkala memperkenalkan infinite
gelung ke dalam program yang dikurangkan. Oleh itu, jika ujian ketertarikan menjalankan
program yang disusun, ia mungkin perlu berbuat demikian di bawah tamat masa.
Sebagai contoh cepat, jika anda menganggap fail sebagai menarik jika vektorizer GCC menyala
semasa menyusunnya, anda mungkin menggunakan ujian ketertarikan ini:
gcc -w -O3 foo.c -S && grep xmm foo.s
Untuk melihat sama ada ujian daya tarikan anda berfungsi, cuba jalankan arahan ini:
DIR=`mktemp -d` cp file_to_reduce [secara pilihan, lebih banyak fail untuk dikurangkan] $DIR cd $DIR
/path/to/interestingness_test echo $?
Ini sepatutnya menyebabkan "0" digema ke terminal. Jika ini tidak berlaku, yang
ujian ketertarikan adalah cacat dan C-Reduce tidak akan dapat menggunakannya.
Jika anda belum menulis ujian ketertarikan sebelum ini, sila rujuk tutorial ini untuk
panduan tambahan:
https://embed.cs.utah.edu/creduce/using/
Jika boleh, jalankan C-Reduce pada kod praproses, dijana contohnya menggunakan:
gcc -E -P fail.c
Jika anda tidak boleh mengurangkan kod praproses, anda boleh mengurangkan hanya kod tidak praproses
fail atau melakukan pengurangan berbilang fail pada fail dan transitifnya termasuk (atau
mana-mana subset daripada mereka). Dalam kes pertama anda perlu menetapkan CREDUCE_INCLUDE_PATH
pembolehubah persekitaran kepada senarai dipisahkan bertindih bagi direktori sertakan supaya
clang_delta untuk mencari mereka.
Jika ujian ketertarikan anda melibatkan pengkompil silang dan ciri-ciri
sasaran silang berbeza daripada hos yang anda perlu tetapkan CREDUCE_TARGET_TRIPLE untuk memadankan
sasaran silang. Ini amat penting jika anda menggunakan kod yang tidak diproses terlebih dahulu
dan gunakan CREDUCE_INCLUDE_PATH.
Tekan "s" pada bila-bila masa untuk melangkau ke laluan seterusnya (ciri ini dilumpuhkan melainkan Perl
modul Term::ReadKey tersedia pada sistem anda).
Ringkasan of pilihan yang berikut:
--tambah-laluan
Tambahkan pas yang ditentukan pada jadual
--juga-menarik
Kod keluar proses (suatu tempat dalam julat 64-113 adalah biasa) yang, apabila
dikembalikan oleh ujian ketertarikan, akan menyebabkan C-Reduce menyimpan salinan
varian [lalai: -1]
--nyahpepijat
Cetak maklumat nyahpepijat
--die-on-pass-bug
Tamatkan C-Reduce jika pas menghadapi masalah yang tidak membawa maut
--peningkatan-maks
Peningkatan terbesar dalam saiz fail daripada satu transformasi yang sepatutnya C-Reduce
terima (hanya berguna untuk melambatkan C-Reduce)
--n
Bilangan teras untuk digunakan; C-Reduce cuba memilih tetapan yang baik secara automatik tetapi ia
pilihan mungkin terlalu rendah atau tinggi untuk situasi anda [lalai: 2]
--tiada-lalai-laluan
Mulakan dengan jadual pas kosong
--tidak-berputus asa
Jangan berputus asa dengan pas yang tidak membuat kemajuan untuk 50000 lelaran
--nokill
Tunggu kejadian selari untuk ditamatkan sendiri dan bukannya membunuhnya (hanya
berguna untuk debugging)
--cetak-perbezaan
Tunjukkan perubahan yang dibuat oleh transformasi, untuk penyahpepijatan
--membersihkan
Cuba untuk mengaburkan butiran daripada fail sumber asal
--jimat-temps
Jangan padam /tmp/creduce-x direktori pada penamatan
--shaddap
Sekat output tentang ralat dalaman yang tidak membawa maut
--langkau-laluan awal
Langkau hantaran awal (berguna jika input sudah dikurangkan sebahagiannya)
--skip-key-off
Lumpuhkan melangkau baki pas semasa apabila "s" ditekan
--slloww
Cuba lebih keras untuk mengurangkan, tetapi mungkin mengambil masa yang lama untuk melakukannya
--kemas Jangan buat salinan sandaran setiap fail untuk dikurangkan sebagai file.orig
--masa
Cetak cap masa tentang kemajuan pengurangan
penggunaan: creduce [options] interestingness_test file_to_reduce [secara pilihan, lebih banyak fail untuk
kurangkan]
percaya - membantu untuk maklumat lanjut
Gunakan creduce dalam talian menggunakan perkhidmatan onworks.net