İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

frama-c.byte - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında frama-c.byte çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen frama-c.byte komutudur.

Program:

ADI


frama-c[.byte] - C programları için statik bir çözümleyici

frama-c-gui[.byte] - frama-c'nin grafik arayüzü

SİNOPSİS


çerçeve-c [ seçenekleri ] Dosyaları

TANIM


çerçeve-c C dilinde yazılmış kaynak kodunun analizine adanmış bir araç takımıdır.
birkaç statik analiz tekniğini tek bir işbirlikçi çerçevede toplar. Bu
çerçeveye yerleştirilen ek eklentiler ile genişletilebilir. $FRAMAC_PLUGIN dizin.
Komuta

çerçeve-c -yardım

şu anda yüklü olan eklentilerin tam listesini sağlayacaktır.

çerçeve-c-gui grafik kullanıcı arayüzüdür çerçeve-c. Şununla aynı seçeneklere sahiptir:
komut satırı sürümü.

çerçeve-c.bayt ve frama-c-gui.byte komut satırının ocaml bayt kodu sürümleridir ve
sırasıyla grafiksel kullanıcı arayüzü.

Varsayılan olarak, Frama-C şunları tanır: .c dosyaları, ön işlemeye ihtiyaç duyan C dosyaları olarak ve .i dosya olarak
C dosyaları önceden işlenmiştir. Bazı eklentiler tanınanlar listesini uzatabilir.
Dosyalar. Ön işleme yoluyla özelleştirilebilir -cpp-komutu ve -cpp-ekstra-arglar
seçenekleri.

SEÇENEKLER


Sözdizimi

Ek parametre alan seçenekler de formun altına yazılabilir.

-seçenek=param

Bu seçenek şu durumlarda zorunludur: param kısa çizgi ('-') ile başlar

Parametre almayan çoğu seçeneğin karşılık gelen bir

-Hayır-Seçeneği

tam tersi etkiye sahip seçenek.

Destek seçenekleri

-Yardım kısa bir kullanım uyarısı ve kurulu eklentilerin listesini verir.

-çekirdek-yardım
Frama-C'nin çekirdeği tarafından tanınan seçeneklerin listesini yazdırır

-ayrıntılı n
Ayrıntı düzeyini ayarlar (varsayılan 1'dir). 0'a ayarlamak daha az ilerleme sağlar
mesajlar. Bu seviye aynı zamanda kişi başı olarak da ayarlanabilir. fişe takmak opsiyonlu baz -fişe takmak-
gereksiz sözlerle dolu n. Seçenek ile çekirdeğin ayrıntı düzeyi kontrol edilebilir
-çekirdek-ayrıntılı n.

-hata ayıklama n
Hata ayıklama seviyesini ayarlar (varsayılan 0'dır, yani hata ayıklama mesajı yoktur). Bu seçenek
eklenti (ve çekirdek) başına uzmanlıkların aynısına sahiptir -ayrıntılı.

-sessiz Ayrıntı ve hata ayıklama düzeyini 0'a ayarlar.

Opsiyonlar kontrol Frama-C'ler çekirdek

-mutlak-geçerli-aralık
aralıktaki tüm sayısal adreslerin en az en çok geçerli. Sınırlar
ocaml tamsayı sabitleri olarak ayrıştırılır. Varsayılan olarak, tüm sayısal adresler
geçersiz sayılır.

-yol ekle p1[,p2[...,pn]]
dizinler ekler içinden eklentilerin bulunduğu dizinler listesine
arama

[-no]-izin-çoğaltma
testlerin ve döngülerin normalleştirilmesi sırasında küçük blokların çoğaltılmasına izin verir.
Aksi takdirde, normalleştirme etiketleri ve gotoları kullanır. Daha büyük bloklar ve olmayan bloklar
önemsiz kontrol akışı asla tekrarlanmaz. Varsayılan olarak evet.

[-hayır]-annot
ACSL ek açıklamasını okur. Bu varsayılandır. Ek açıklama tarafından önceden işlenmez
varsayılan. Kullanmak -pp-açıklama bunun için.

-büyük-ints-hex maksimum
tamsayılar daha büyük maksimum onaltılı olarak görüntülenir (varsayılan olarak tüm tamsayılar
ondalık olarak görüntülenir)

-Kontrol dahili AST üzerinde bütünlük kontrolleri gerçekleştirir (yalnızca geliştiriciler için).

[-hayır]-collapse-call-cast
bir işlev tarafından döndürülen değer ile olduğu değer arasında örtük olarak gösterime izin verir
atandı. Aksi takdirde, geçici bir değişken kullanılır ve döküm açık hale getirilir.
Varsayılan olarak evet.

[-hayır]-constfold
analizlerden önce koddaki tüm sözdizimsel olarak sabit ifadeleri katlar. varsayılanlar
hayır.

[-no]-devam-annot-hatası
Bir detaylandırmayı analiz ederken, varsayılan davranış ( -Hayır Bu seçeneğin sürümü)
bir yazım denetimi hatası oluştuğunda, kaynak dosyayı olduğu gibi reddetmektir.
C kodundaki yazım denetimi hataları. Bu seçenek açıkken, daktilo denetleyicisi
yalnızca bir uyarı çıktısı alın ve ek açıklamayı atın, ancak yazım denetimi devam edecek
(C kodundaki hatalar yine de ölümcüldür).

-cpp-komutu cmd
Kullanımlar cmd C dosyalarını önceden işleme komutu olarak. Varsayılanlar CPP çevre
değişken veya

gcc -C -E -I.

ayarlanmamışsa. ACSL ek açıklamalarını korumak için önişlemci,
yorumlar ( -C gcc için seçenek). %1 ve %2 -ebilmek var olmak kullanılmış cmd belirtmek
sırasıyla orijinal kaynak dosya ve önceden işlenmiş dosya

-cpp-ekstra-arglar args
Ön işlemciye ek argümanlar verir. Bu yalnızca şu durumlarda yararlıdır:
-önişlem-annot ayarlanır. Ön işleme açıklamaları iki ayrı ön işlemde yapılır.
işleme aşamaları. İlki, makroyu koruyan C kodunda normal bir geçiştir.
tanımlar. Bunlar daha sonra ek açıklamaların yapıldığı ikinci geçişte kullanılır.
önceden işlenmiş. args yalnızca ilk geçiş için kullanılır, böylece
iki kez kullanılmamalıdır (örneğin ek içerme yönergeleri veya makro
tanımlar) bu nedenle oraya gitmeli -cpp-komutu.

[-hayır]-dynlink
Açıkken, arama yolunda bulunan tüm dinamik eklentileri yükleyin (bkz. -baskı-eklenti-
yol varsayılan arama yolu hakkında daha fazla bilgi için). Aksi takdirde, yalnızca eklentiler
tarafından talep edildi -yük modülleri yüklenecek. Varsayılan davranış açıktır.

-numaralar temsil
Numaralandırılmış türlerin temsilinin belirlenme şeklini seçin. çerçeve-c
-numaralar yardım et mevcut seçeneklerin listesini verir. Varsayılan gcc numaralandırmaları

-float-rakamlar n
Kayan noktalı sayıların çıktısını alırken, n rakamlar. Varsayılan değer 12'dir.

-yüzer-sıfır-sıfıra
Kayan nokta işlemleri sıfıra sıfır

-şamandıra altıgen
ekran onaltılık olarak yüzer

-float-normal
standart Ocaml rutini ile ekran yüzer

-şamandıra-göreceli
kayan nokta aralığını [ olarak göster alt sınır++genişlik ]

[-no]-force-rl-arg-değerlendirme
fonksiyon çağrılarının argümanları için sağdan sola değerlendirme sırasını zorlar. Aksi halde
değerlendirme sırası, C standardında olduğu gibi belirtilmeden bırakılır. Varsayılan olarak hayır.

-günlük-devre dışı bırak
Geçerli oturumun günlüğünü çıkarmayın. Görmek -günlük-etkinleştir.

-günlük-etkinleştir
Varsayılan olarak Açık, geçerli işlem sırasında gerçekleştirilen tüm eylemlerin bir günlüğünü atar.
İle tekrar oynatılabilen bir ocaml betiği biçiminde Frama-C oturumu -yük-
senaryo. Komut dosyasının adı ile ayarlanabilir -dergi-adı seçeneği.

-dergi-adı isim
Günlük dosyasının adını ayarlayın ( .ml uzantı). Varsayılan
frama_c_journal.

-başlatıldı-dolgu-yerelleri
Yerellerin örtük olarak başlatılması, dolgu bitlerini 0'a ayarlar. Yanlışsa, dolgu bitleri
başlatılmamış olarak bırakılır (varsayılan olarak evet).

[-no]-keep-yorumlar
Kaynak kodu güzel yazdırırken yorumları korumaya çalışır (varsayılanı hayırdır).

[-no]-tut anahtarı
Ne zaman -basitleştir-cfg ayarlanır, switch deyimlerini tutar. Varsayılan olarak hayır.

-kullanılmayan-belirtilen-işlevleri tut
Yerimizi -kaldır-kullanılmayan-belirtilen-işlevler

[-no]-lib-girişi
Program yürütme sırasında giriş noktasının çağrıldığını gösterir. Bu şu anlama gelir:
özellikle global değişkenlerin başlangıç ​​değerlerine sahip olduğu varsayılamaz.
Varsayılan -no-lib-girişi: giriş noktası aynı zamanda
program ve globaller başlangıç ​​değerlerine sahiptir.

-yük dosya
içinde bulunan (önceden kaydedilmiş) durumu yükle dosya.

-yük modülü m1[,m2[...,dk]]
ocaml modüllerini yükler içinden . Bu modüller olmalıdır .cmxsdosyalar
Frama-c'nin yerel kod sürümü ve .cmoor.cmabayt kodu sürümü için dosyalar (bkz.
Daha fazla bilgi için Ocaml kılavuzunun Dynlink bölümü). olan tüm modüller
Eklentide bulunan arama yolları otomatik olarak yüklenir.

-yük-komut dosyası s1[,s2,[...,sn]]
ocaml komut dosyalarını yükler içinden . Senaryolar olmalı .mlDosyalar. Onlar
yalnızca Ocaml standart kitaplığına ve Frama-C'nin API'sine dayalı olarak derlenebilir olmalıdır. Eğer
bazı özel derleme adımları gerekiyor, bunları Frama-C dışında derleyin ve kullanın
-yük modülü yerine.

-machdep makine
kullanım makine mevcut makineye bağlı konfigürasyon olarak (çeşitli
tamsayı türleri, sonsuzluk, ...). Şu anda desteklenen makinelerin listesi
aracılığıyla kullanılabilir -machdep yardım et seçenek. Varsayılan x86_32

-ana f
Setleri f Analizin giriş noktası olarak. Varsayılan olarak 'ana'dır. Varsayılan olarak,
analiz edilen programın başlangıç ​​noktası olarak kabul edilir. Kullanmak -lib-girişi if f
bir infazın ortasında çağrılması gerekiyordu.

-gizlemek
kodun karışık bir sürümünü yazdırır (orijinal tanımlayıcıların değiştirildiği yer
anlamsız biri tarafından) ve çıkar. Orijinal ve yeni arasındaki yazışma tablosu
semboller sonucun başında tutulur.

-kod dosya
oldukça basılmış kodu şuraya yönlendirir: dosya standart çıktı yerine

[-no]-orijinal-adı
Normalleştirme aşamasında, farklı olduğunda bazı değişkenler yeniden adlandırılabilir.
aynı ada sahip değişken bir arada var olabilir (örneğin global bir değişken ve resmi bir
parametre). Bu seçenek açık olduğunda, bu her gerçekleştiğinde bir mesaj yazdırılır.
Varsayılan olarak hayır.

[-no]-warn-imzalı-downcast
imzalı aşağı yayınlar hedef aralığı aştığında alarmlar oluşturur (varsayılan
değil).

[-no]-warn-imzalı-taşma
taşan imzalı işlemler için alarmlar oluşturur (varsayılan olarak evet).

[-no]-warn-signed-downcast
imzasız aşağı yayınlar hedef aralığı aştığında alarmlar oluşturur (varsayılan
hayır).

[-no]-warn-imzasız-taşma
taşan imzasız işlemler için alarmlar oluşturur (varsayılan olarak hayır).

[-hayır]-pp-annot
ön işlem açıklamaları. Bu, şu anda yalnızca gcc (veya GNU
cpp) ön işlemci. Varsayılan, ek açıklamaları önceden işlememektir.

[-hayır]-baskı
kaynak kodunu CIL tarafından normalleştirildiği şekilde güzel yazdırır (varsayılan olarak hayır).

-baskı-libpath
Frama-C çekirdek kitaplığının kurulu olduğu dizini çıkarır

-baskı yolu
takma adı -yazdır-paylaş-yolu

-yazdır-eklenti-yolu
Frama-C'nin eklentilerini aradığı dizini çıkarır (
FRAMAC_PLUGIN değişken ve -yol ekle opsiyon)

-yazdır-paylaş-yolu
Frama-C'nin verilerini depoladığı dizini çıkarır (
FRAMAC_SHARE değişken)

-kaldır-kullanılmayan-belirtilen-işlevler
ACSL spesifikasyonuna sahip olan ancak programda kullanılmayan fonksiyon prototiplerini tutar.
kod. Bu varsayılandır. Özniteliğe sahip fonksiyonlar FRAMAC_BUILTIN her zaman
tutulmuş.

-güvenli diziler
Yapıların içindeki alanlar olan çok boyutlu diziler veya diziler için şunu varsayar:
tüm erişimler bağlı olmalıdır (varsayılan olarak ayarlanır). Zıt seçenek ise -güvensiz-
diziler

-kaydetmek dosya
Frama-C'nin durumunu şuraya kaydeder: dosya analizler yapıldıktan sonra.

[-hayır]-basitleştir-cfg
analizlerden önce break, Continue ve switch ifadesini kaldırır. Varsayılan olarak hayır.

-sonra birinin analizler oluşturmasına izin verir: seçeneklerle birlikte ilk Frama-C çalışması gerçekleşir
önce -sonra ve sonraki seçeneklerle ikinci bir çalıştırma yapılacaktır. -sonra üzerinde
ilk çalıştırmadan geçerli proje.

-sonra-on prj
Benzer -sonra projede ikinci çalıştırmanın gerçekleştirilmesi dışında prj eğer böyle değilse
proje var, Frama-C bir hatayla çıkıyor.

Zamanlı dosya
verilen süreye kullanıcı saatini ve tarihini ekler dosya Frama-C çıktığında.

-tip kontrolü
kaynak dosyaların tip kontrolünü zorlar. Bu seçenek yalnızca başka bir seçenek yoksa geçerlidir.
analiz talep edilir (tip denetimi, analizden önce dolaylı olarak gerçekleşeceğinden
başlatıldı).

-ulevel n
döngüleri sözdizimsel olarak aç n analizden önceki zamanlar. Bu oldukça maliyetli olabilir
ve bazı eklentiler (örneğin değer analizi) gerçekleştirmek için daha verimli yollar sağlar
aynı şey. Daha fazla bilgi için ilgili kılavuzlarına bakın. Bu da olabilir
aracılığıyla döngü bazında etkinleştirilebilir. döngü pragma açmak direktif. bir
için negatif değer n bu tür pragmaları engelleyecektir.

[-hayır]-unicode
ACSL formüllerini utf8 karakterleriyle verir. Bu varsayılandır. verildiğinde
-unicode yok seçeneği, Frama-C bunun yerine ASCII sürümünü kullanacaktır. ACSL kılavuzuna bakın
yazışma için.

-güvensiz-diziler
görmek -güvenli diziler

[-no]-belirtilmemiş-erişim
belirtilmemiş bir sırada gerçekleşen okuma/yazma erişimlerini kontrol eder (C'ye göre
standardın sıra noktası kavramı) ayrı konumlarda gerçekleştirilir. İle birlikte
-belirtilmemiş-erişim yok, durumun her zaman böyle olduğunu varsayar (bu varsayılandır).

-version
Frama-C'nin sürüm dizesini çıkarır

-uyar-ondalık-kayan nokta
kayan nokta sabiti tam olarak temsil edilemediğinde uyarır (örn. 0.1).
biri olabilir Yok, bir Zamanlarya da herşey

[-no]-uyar-bildirilmemiş-arayan
bir işlev bildirilmeden önce çağrıldığında uyarır (varsayılan olarak ayarlanır).
Frama-Cı

eklentiler özel seçenekleri

Her biri için fişe takmak, komuta

çerçeve-c -fişe takmak-Yardım

eklentiye özgü seçeneklerin listesini verecektir.

EXIT DURUMU


0 Başarılı uygulama

1 Geçersiz kullanıcı girişi

2 Kullanıcı kesintisi (öldürme veya eşdeğeri)

3 uygulanmamış özellik

4 5 6 İç hata

125 Bilinmeyen hata

2'den büyük çıkış durumu bir hata (veya durum için bir özellik isteği) olarak kabul edilebilir.
çıkış durumu 3) ve Frama-C'nin BTS'sinde bildirilebilir (aşağıya bakın).

ÇEVRE DEĞİŞKENLER


Frama-C'nin dosyalarını aradığı yerleri kontrol etmek mümkündür.
aşağıdaki değişkenler.

FRAMAC_LIB
Çekirdeğin derlenmiş arayüzlerinin kurulu olduğu dizin

FRAMAC_PLUGIN
Frama-C'nin standart eklentileri bulabileceği dizin. Eklentilere sahip olmak istiyorsanız
birkaç yerde kullanın -yol ekle yerine.

FRAMAC_SHARE
Frama-C verilerinin kurulu olduğu dizin.

onworks.net hizmetlerini kullanarak frama-c.byte'ı çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad