Ini adalah perintah frama-c yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
frama-c[.byte] - penganalisis statis untuk program C
frama-c-gui[.byte] - antarmuka grafis frama-c
RINGKASAN
bingkai-c [ Pilihan ] arsip
DESKRIPSI
bingkai-c adalah seperangkat alat yang didedikasikan untuk analisis kode sumber yang ditulis dalam C. It
mengumpulkan beberapa teknik analisis statis dalam kerangka kerja kolaboratif tunggal. Ini
kerangka kerja dapat diperpanjang dengan plugin tambahan yang ditempatkan di $FRAMAC_PLUGIN direktori.
Perintah
frama-c -bantuan
akan memberikan daftar lengkap plugin yang saat ini diinstal.
frama-c-gui adalah antarmuka pengguna grafis dari bingkai-c. Ini memiliki opsi yang sama dengan
versi baris perintah.
frama-c.byte dan frama-c-gui.byte adalah versi bytecode ocaml dari baris perintah dan
antarmuka pengguna grafis masing-masing.
Secara default, Frama-C mengenali .c file sebagai file C yang membutuhkan pra-pemrosesan dan .i file sebagai
File C telah diproses sebelumnya. Beberapa plugin dapat memperpanjang daftar yang dikenali
file. Pra-pemrosesan dapat disesuaikan melalui -cpp-perintah dan -cpp-ekstra-args
Pilihan.
PILIHAN
Sintaksis
Opsi yang mengambil parameter tambahan juga dapat ditulis di bawah formulir
-Option=berhenti
Opsi ini wajib ketika berhenti dimulai dengan tanda hubung ('-')
Sebagian besar opsi yang tidak menggunakan parameter memiliki yang sesuai
-tidak-Pilihan
pilihan yang memiliki efek sebaliknya.
Bantuan Pilihan
-bantu memberikan pemberitahuan penggunaan singkat dan daftar plugin yang diinstal.
-kernel-bantuan
mencetak daftar opsi yang dikenali oleh kernel Frama-C
-verbose n
Mengatur tingkat verbositas (default adalah 1). Mengaturnya ke 0 akan menghasilkan lebih sedikit kemajuan
pesan. Level ini juga dapat diatur pada per Plugin dasar, dengan opsi -Plugin-
bertele-tele n. Tingkat verbositas kernel dapat dikontrol dengan opsi
-kernel-verbose n.
-debug n
Menyetel tingkat debug (defaultnya adalah 0, artinya tidak ada pesan debug). Pilihan ini
memiliki spesialisasi per plugin (dan kernel) yang sama seperti -verbose.
-diam Menetapkan tingkat verbositas dan debugging ke 0.
Opsi mengendalikan Frama-C inti
-rentang-absolut-valid
menganggap bahwa semua alamat numerik dalam jangkauan min-maks valid. Batasnya adalah
diuraikan sebagai konstanta integer ocaml. Secara default, semua alamat numerik adalah
dianggap tidak sah.
-tambah-jalur p1[,p2[...,pn]]
menambahkan direktori melalui ke daftar direktori tempat plugin berada
dicari
[-tidak]-izinkan-duplikasi
memungkinkan duplikasi blok kecil selama normalisasi tes dan loop.
Jika tidak, normalisasi menggunakan label dan gotos. Blok yang lebih besar dan blok dengan non-
aliran kontrol sepele tidak pernah diduplikasi. Default untuk ya.
[-tidak]-annot
membaca anotasi ACSL. Ini adalah default. Anotasi tidak diproses sebelumnya oleh
bawaan. Menggunakan -pp-tidak untuk itu.
-hex-ints-besar max
bilangan bulat lebih besar dari max ditampilkan dalam heksadesimal (secara default, semua bilangan bulat adalah
ditampilkan dalam desimal)
-memeriksa melakukan pemeriksaan integritas pada AST internal (hanya untuk pengembang).
[-tidak]-ciutkan-panggilan-pemeran
memungkinkan pemeran implisit antara nilai yang dikembalikan oleh suatu fungsi dan nilai itu
ditugaskan untuk. Jika tidak, variabel sementara digunakan dan pemeran dibuat eksplisit.
Default untuk ya.
[-tidak]-constfold
melipat semua ekspresi konstanta sintaksis dalam kode sebelum analisis. Default
ke tidak.
[-no]-lanjutkan-annot-error
Saat menganalisis anotasi, perilaku default (the -tidak versi opsi ini)
ketika kesalahan pengecekan ketik terjadi adalah untuk menolak file sumber seperti halnya untuk
kesalahan pengecekan ketik dalam kode C. Dengan opsi ini aktif, pemeriksa jenis akan
hanya mengeluarkan peringatan dan membuang anotasi tetapi pemeriksaan ketik akan dilanjutkan
(kesalahan dalam kode C masih fatal).
-cpp-perintah cmd
penggunaan cmd sebagai perintah untuk memproses file C terlebih dahulu. Default untuk CPP lingkungan Hidup
variabel atau ke
gcc -C -E -I.
jika tidak diatur. Untuk mempertahankan anotasi ACSL, praprosesor harus menyimpan
komentar ( -C pilihan untuk gcc). %1 dan %2 dapat digunakan di cmd untuk menunjukkan
file sumber asli dan file pra-proses masing-masing
-cpp-ekstra-args args
Memberikan argumen tambahan ke pra-prosesor. Ini hanya berguna ketika
-praproses-annot diatur. Anotasi pra-pemrosesan dilakukan dalam dua pra-pemrosesan terpisah.
tahapan pengolahan. Yang pertama adalah pass normal pada kode C yang mempertahankan makro
definisi. Ini kemudian digunakan di lintasan kedua di mana anotasi digunakan
pra-diproses. args hanya digunakan untuk lintasan pertama, sehingga argumen bahwa
tidak boleh digunakan dua kali (seperti tambahan termasuk arahan atau makro
definisi) dengan demikian harus pergi ke sana alih-alih -cpp-perintah.
[-tidak]-dynlink
Saat aktif, muat semua plug-in dinamis yang ditemukan di jalur pencarian (lihat -cetak-plugin-
path untuk informasi lebih lanjut tentang jalur pencarian default). Jika tidak, hanya plugin
diminta oleh -load-modul akan dimuat. Perilaku default aktif.
-enum repr
Pilih cara representasi tipe enumerasi ditentukan. bingkai-c
-enum membantu memberikan daftar pilihan yang tersedia. Standarnya adalah gcc-enum
-float-digit n
Saat mengeluarkan angka floating-point, tampilkan n angka. Default ke 12.
-float-flush-ke-nol
Operasi titik mengambang rata ke nol
-float-hex
tampilan mengapung sebagai heksadesimal
-mengapung-normal
tampilan mengapung dengan rutinitas Ocaml standar
-float-relatif
tampilkan interval float sebagai [ batas bawah++lebar ]
[-tidak]-force-rl-arg-eval
memaksa urutan evaluasi dari kanan ke kiri untuk argumen pemanggilan fungsi. Sebaliknya
urutan evaluasi dibiarkan tidak ditentukan, seperti dalam standar C. Default ke no.
-jurnal-nonaktifkan
Jangan menampilkan jurnal sesi saat ini. Lihat -jurnal-mengaktifkan.
-jurnal-mengaktifkan
Aktif secara default, membuang jurnal dari semua tindakan yang dilakukan selama saat ini
Sesi Frama-C dalam bentuk skrip ocaml yang dapat diputar ulang dengan -beban-
naskah. Nama skrip dapat diatur dengan -nama-jurnal .
-nama-jurnal nama
Atur nama file jurnal (tanpa .ml perpanjangan). Default untuk
frama_c_jurnal.
-diinisialisasi-padding-lokal
Inisialisasi implisit lokal menetapkan bit padding ke 0. Jika salah, bit padding
dibiarkan tidak diinisialisasi (default ke ya).
[-no]-terus-komentar
Mencoba mempertahankan komentar saat mencetak kode sumber dengan cantik (default ke no).
[-tidak]-tetap-beralih
Ketika -sederhanakan-cfg diatur, menyimpan pernyataan switch. Default ke no.
-simpan-fungsi-yang-ditentukan-yang-tidak digunakan
Lihat -hapus-fungsi-ditentukan-yang tidak digunakan
[-no]-lib-entri
Menunjukkan bahwa titik masuk dipanggil selama eksekusi program. Ini menyiratkan dalam
tertentu bahwa variabel global tidak dapat diasumsikan memiliki nilai awalnya.
Standarnya adalah -no-lib-entri: titik masuk juga merupakan titik awal dari
program dan global memiliki nilai awalnya.
-beban fillet
memuat status (yang disimpan sebelumnya) yang terkandung dalam fillet.
-load-modul m1[,m2[...,mn]]
memuat modul ocaml melalui . Modul ini harus .cmxsfile untuk
versi kode asli Frama-c dan .cmoor.cmafile untuk versi bytecode (lihat
bagian Dynlink dari manual Ocaml untuk informasi lebih lanjut). Semua modul yang
yang ada di jalur pencarian plugin dimuat secara otomatis.
-muat-skrip s1[,s2,[...,sn]]
memuat skrip ocaml melalui . Scriptnya harus .mlfile. Mereka
harus dapat dikompilasi hanya dengan mengandalkan pustaka standar Ocaml dan API Frama-C. Jika
beberapa langkah kompilasi khusus diperlukan, kompilasi di luar Frama-C dan gunakan
-load-modul sebagai gantinya.
-machdep mesin
kegunaan mesin sebagai konfigurasi yang bergantung pada mesin saat ini (ukuran berbagai
tipe integer, endiandness, ...). Daftar mesin yang saat ini didukung adalah
tersedia melalui -machdep membantu pilihan. Standarnya adalah x86_32
-utama f
set f sebagai titik masuk analisis. Default ke 'utama'. Secara default, ini adalah
dianggap sebagai titik awal dari program yang dianalisis. Menggunakan -lib-entri if f
seharusnya dipanggil di tengah eksekusi.
-menggelapkan
mencetak versi kode yang dikaburkan (di mana pengidentifikasi asli diganti
dengan yang tidak berarti) dan keluar. Tabel korespondensi antara asli dan baru
simbol disimpan di awal hasil.
-kode fillet
mengalihkan kode yang dicetak cantik ke fillet bukannya keluaran standar.
[-no]-asal-nama
Selama fase normalisasi, beberapa variabel mungkin diganti namanya ketika berbeda
variabel dengan nama yang sama dapat hidup berdampingan (misalnya variabel global dan formal
parameter). Saat opsi ini aktif, sebuah pesan akan dicetak setiap kali hal ini terjadi.
Default ke no.
[-tidak]-peringatkan-tanda tangan-downcast
menghasilkan alarm ketika downcasts yang ditandatangani dapat melebihi rentang tujuan (default ke
tidak).
[-tidak]-peringatkan-ditandatangani-melimpah
menghasilkan alarm untuk operasi yang ditandatangani yang meluap (default ke ya).
[-tidak]-peringatkan-unsigned-downcast
menghasilkan alarm ketika downcast yang tidak ditandatangani dapat melebihi rentang tujuan (default
untuk tidak).
[-tidak]-peringatkan-unsigned-overflow
menghasilkan alarm untuk operasi yang tidak ditandatangani yang meluap (default ke tidak).
[-tidak]-pp-annot
anotasi pra-proses. Saat ini hanya dimungkinkan saat menggunakan gcc (atau GNU
cpp) pra-prosesor. Standarnya adalah tidak melakukan pra-proses anotasi.
[-tidak]-cetak
cantik-mencetak kode sumber seperti yang dinormalisasi oleh CIL (default ke no).
-cetak-libpath
menampilkan direktori tempat pustaka kernel Frama-C diinstal
-jalur-cetak
alias -jalur-cetak-berbagi
-print-plugin-jalan
menampilkan direktori tempat Frama-C mencari pluginnya (dapat ditimpa oleh
FRAMAC_PLUGIN variabel dan -tambah-jalur opsional)
-jalur-cetak-berbagi
menampilkan direktori tempat Frama-C menyimpan datanya (dapat ditimpa oleh
FRAMAC_SHARE variabel)
-hapus-fungsi-ditentukan-yang tidak digunakan
menyimpan prototipe fungsi yang memiliki spesifikasi ACSL tetapi tidak digunakan dalam
kode. Ini adalah default. Fungsi yang memiliki atribut FRAMAC_BUILTIN selalu
disimpan.
-safe-array
Untuk larik multidimensi atau larik yang merupakan bidang di dalam struct , asumsikan bahwa
semua akses harus dalam keadaan terikat (diatur secara default). Pilihan sebaliknya adalah -tidak aman-
array
-menyimpan fillet
Menyimpan status Frama-C menjadi fillet setelah analisis dilakukan.
[-no]-sederhanakan-cfg
menghapus pernyataan break, continue dan switch sebelum analisis. Default ke no.
-kemudian memungkinkan seseorang untuk membuat analisis: menjalankan Frama-C pertama akan terjadi dengan opsi
sebelum -kemudian dan putaran kedua akan dilakukan dengan opsi setelahnya -kemudian pada
proyek saat ini dari menjalankan pertama.
-saat itu prj
Mirip dengan -kemudian kecuali bahwa run kedua dilakukan dalam proyek prj Jika tidak seperti itu
proyek ada, Frama-C keluar dengan kesalahan.
-waktu fillet
menambahkan waktu dan tanggal pengguna dalam yang diberikan fillet ketika Frama-C keluar.
-pemeriksaan ketik
memaksa pengecekan jenis file sumber. Opsi ini hanya relevan jika tidak lebih lanjut
analisis diminta (karena pengecekan tipe akan secara implisit terjadi sebelum analisis
diluncurkan).
-ulevel n
membuka gulungan loop secara sintaksis n kali sebelum analisis. Ini bisa sangat mahal
dan beberapa plugin (misalnya analisis nilai) menyediakan cara yang lebih efisien untuk melakukan
hal yang sama. Lihat manual masing-masing untuk informasi lebih lanjut. Ini juga bisa
diaktifkan pada basis per-loop melalui lingkaran pragma membuka gulungan pengarahan. SEBUAH
nilai negatif untuk n akan menghambat pragma tersebut.
[-tidak]-unicode
output rumus ACSL dengan karakter utf8. Ini adalah default. Ketika diberikan
-tanpa-unicode opsi, Frama-C akan menggunakan versi ASCII sebagai gantinya. Lihat manual ACSL
untuk korespondensi.
-unsafe-array
melihat -safe-array
[-tidak]-akses tidak ditentukan
memeriksa bahwa akses baca/tulis terjadi dalam urutan yang tidak ditentukan (menurut C
gagasan standar tentang titik urutan) dilakukan di lokasi terpisah. Dengan
-tidak-tidak-ditentukan-akses, mengasumsikan bahwa selalu demikian (ini adalah default).
-versi
menampilkan string versi Frama-C
-peringatan-desimal-float
memperingatkan ketika konstanta floating-point tidak dapat direpresentasikan secara tepat (misalnya 0.1).
bisa menjadi salah satu tak satupun, sekali, atau semua
[-tidak]-peringatkan-tidak diumumkan-callee
memperingatkan ketika suatu fungsi dipanggil sebelum dideklarasikan (diatur secara default).
Frama-C
plugin tertentu Pilihan
Untuk setiap Plugin, perintah
bingkai-c -Plugin-bantu
akan memberikan daftar opsi yang khusus untuk plugin.
EXIT STATUS
0 Eksekusi sukses
1 Masukan pengguna tidak valid
2 Gangguan pengguna (membunuh atau setara)
3 Fitur yang belum diterapkan
4 5 6 Kesalahan internal
125 Kesalahan yang tidak diketahui
Status keluar lebih besar dari 2 dapat dianggap sebagai bug (atau permintaan fitur untuk kasus ini
status exit 3) dan dapat dilaporkan pada BTS Frama-C (lihat di bawah).
LINGKUNGAN VARIABEL
Dimungkinkan untuk mengontrol tempat-tempat di mana Frama-C mencari file-nya melalui
variabel berikut.
FRAMAC_LIB
Direktori di mana antarmuka terkompilasi kernel diinstal
FRAMAC_PLUGIN
Direktori tempat Frama-C dapat menemukan plug-in standar. Jika Anda ingin memiliki plugin
di beberapa tempat, gunakan -tambah-jalur sebagai gantinya.
FRAMAC_SHARE
Direktori tempat data Frama-C diinstal.
Gunakan frama-c online menggunakan layanan onworks.net