İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

scan-build-3.8 - Bulutta Çevrimiçi

Scan-build-3.8'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 çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden çok ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen scan-build-3.8 komutudur.

Program:

ADI


tarama-yapı — Clang statik analizörü

SİNOPSİS


tarama-yapı [-ohkvV] [-analiz-başlıkları] [-etkinleştir-denetleyicisi [denetleyici_adı]]
[-devre dışı bırak denetleyicisi [denetleyici_adı]] [--yardım et] [--yardım denetleyicileri]
[--html-başlık [=başlık]] [--devam etmek] [-plist] [-plist-html] [--durum-hatalar]
[--use-c++ [=derleyici_yolu]] [--use-cc [=derleyici_yolu]] [--görüş]
[-kısıtlamalar [model]] [-maksloop N] [-hata yok-raporları] [-istatistikler]
[store [model]] inşa_komutu [yapı_seçenekleri]

TANIM


tarama-yapı Clang statik çözümleyicisini çağıran bir Perl betiğidir. Tarafından kullanılan seçenekler
tarama-yapı veya analizör tarafından önce görünür, ardından inşa_komutu Ve herhangi biri
inşa_seçenekleri normalde hedef sistemi oluşturmak için kullanılır.

Statik analizör, uzun bir kontrol algoritması listesi kullanır, bkz. DAMA. çıktı olabilir
standart .plist ve/veya HTML formatında yazılmıştır.

Aşağıdaki seçenekler desteklenir:

-analiz-başlıkları
Ayrıca #included dosyalarındaki işlevleri de analiz edin.

-etkinleştir-denetleyicisi denetleyici_adı, -devre dışı bırak denetleyicisi denetleyici_adı
Etkinleştirme / Devre dışı denetleyici_adı. Görmek DAMA.

-h, --yardım et
Bu mesajı göster.

--yardım denetleyicileri
Varsayılan denetleyicileri listeleyin, bkz. DAMA.

--html-başlık[=başlık]
Oluşturulan HTML sayfalarında kullanılan başlığı belirtin. Aşağıdaki durumlarda varsayılan bir başlık oluşturulur:
başlık belirtilmedi.

-k, --devam etmek
için bir "devam et" seçeneği ekleyin. inşa_komutu. Şu anda markayı destekler ve
xcodebuild. Bu bir kolaylık seçeneğidir; bu davranışı doğrudan belirtebilirsiniz
oluşturma seçeneklerini kullanma.

-o HTML rapor dosyaları için hedef dizin. Gerektiğinde alt dizinler oluşturulacaktır.
çözümleyicinin ayrı çağrılarını temsil eder. Bu seçenek belirtilmemişse, bir
dizin oluşturulur / Tmp (Mac OS X'te TMPDIR) raporları saklamak için.

-plist Sonuçları bir dizi .plist dosyası olarak çıktılayın. (Varsayılan olarak çıktısı tarama-yapı is
bir dizi HTML dosyası.)

-plist-html
Sonuçları bir dizi HTML ve .plist dosyası olarak çıktılayın

--durum-hatalar
Olası hatalar bulduysa çıkış durumunu 1, aksi takdirde 0 olarak ayarlayın. Varsayılan olarak çıkış
durumu tarama-yapı tarafından döndürüldü mü inşa_komutu.

--use-c++[=derleyici_yolu]
C++ ve Objective-C++ kodunuz için varsayılan derleyiciyi tahmin edin. için bu seçeneği kullanın
alternatif bir derleyici belirtin.

--use-cc[=derleyici_yolu]
C ve Objective-C kodunuz için varsayılan derleyiciyi tahmin edin. için bu seçeneği kullanın
alternatif bir derleyici belirtin.

-v Ayrıntılı çıktı tarama-yapı ve analizör. İkinci ve üçüncü v artışlar
ayrıntı.

-V, --görüş
Derleme tamamlandığında analiz sonuçlarını bir web tarayıcısında görüntüleyin.

-kısıtlamalar [model]
Analiz cihazı tarafından kullanılan kısıtlama motorunu belirtin. Varsayılan olarak 'aralık' modeli
kullanılmış. 'Temel' belirtmek, tarafından kullanılan daha basit, daha az güçlü bir kısıtlama modeli kullanır.
denetleyici-0.160 ve öncesi.

-maksloop N
Vazgeçmeden önce bir bloğun kaç kez ziyaret edilebileceğini belirtin. Varsayılan 4'tür.
Hız pahasına daha kapsamlı kapsama alanı için artırın.

-hata yok-raporları
Çözümleyici kilitlenme raporlarını içeren bir 'başarısızlık' alt dizini oluşturmayın ve
önceden işlenmiş kaynak dosyalar.

-istatistikler Analiz edilen proje için ziyaret istatistikleri oluşturur.

store [model]
Çözümleyici tarafından kullanılan mağaza modelini belirtin. Varsayılan olarak, "bölge" mağaza modeli
kullanıldı. 'bölge', alana duyarlı bir mağaza modelini belirtir. Kullanıcılar ayrıca belirtebilir
Çok daha az kesin olan ancak kodu daha hızlı analiz edebilen 'temel'. 'temel' idi
checker-0.221 ve önceki sürümler için varsayılan mağaza modeli.

EXIT DURUMU


tarama-yapı tarafından döndürülen değeri döndürür inşa_komutu olmadıkça --durum-hatalar or --devam etmek
kullanıldı.

DAMA


Aşağıda listelenen denetleyiciler, aşağıdakiler kullanılarak etkinleştirilebilir/devre dışı bırakılabilir: -etkinleştir-denetleyicisi ve
-devre dışı bırak denetleyicisi seçenekler. Açıkça devre dışı bırakılmadığı sürece varsayılan bir dama grubu çalıştırılır.
Tam olarak hangi denetleyicilerin varsayılan grubu oluşturduğu, işletim sisteminin bir işlevidir.
kullanmak; ile listelenirler --yardım denetleyicileri.

core.AdjustedReturnValue
Bir işlev çağrısının dönüş değerinin arayandan farklı olup olmadığını kontrol edin.
bekler (örneğin, işlev işaretçileri aracılığıyla çağrılardan).

core.AttributeNonNull
Argümanları şu şekilde olan bir fonksiyona argüman olarak geçirilen boş göstericileri kontrol edin.
'null olmayan' özniteliği ile işaretlenir.

core.CallAndMessage
İşlev çağrıları ve Objective-C mesaj ifadeleri için mantıksal hataları kontrol edin
(örneğin, başlatılmamış bağımsız değişkenler, boş işlev işaretçileri).

çekirdek.DivideZero
Sıfıra bölmeyi kontrol edin.

core.NullDereferans
Boş göstericilerin referanslarını kontrol edin.

core.StackAddressEscape
Hafızayı yığacak adreslerin fonksiyondan kaçmadığını kontrol edin.

core.UnDefinitionBinaryOperatorResult
İkili işleçlerin tanımsız sonuçlarını kontrol edin.

çekirdek.VLASize
Tanımsız veya sıfır boyutlu VLA bildirimlerini kontrol edin.

core.builtin.BuiltinFonksiyonlar
Derleyici yerleşik işlevlerini değerlendirin, örneğin tahsis().

core.builtin.NoReturnFunctions
Arayana geri dönmediği bilinen 'panik' işlevlerini değerlendirin.

core.uninitialized.ArraySubscript
Dizi abonelikleri olarak kullanılan başlatılmamış değerleri kontrol edin.

core.uninitialized.Ata
Başlatılmamış değerlerin atanıp atanmadığını kontrol edin.

core.uninitialized.Şube
Dal koşulları olarak kullanılan başlatılmamış değerleri kontrol edin.

core.uninitialized.CapturedBlockVariable
Başlatılmamış değerleri yakalayan blokları kontrol edin.

core.uninitialized.UndefReturn
Arayana döndürülen başlatılmamış değerleri kontrol edin.

Deadcode.DeadStore'lar
Daha sonra asla okunmayan değişkenlerde saklanan değerleri kontrol edin.

hata ayıklama.DumpCFG
Kontrol-Akış Grafiklerini görüntüleyin.

debug.DumpCallGraph
Çağrı Grafiği görüntüleyin.

debug.DumpDominators
Belirli bir Kontrol Akış Grafiği için baskınlık ağacını yazdırın.

debug.DumpLiveVars
Canlı değişken analizinin sonuçlarını yazdırın.

hata ayıklama.İstatistikler
Analizör istatistikleriyle uyarılar yayınlayın.

hata ayıklama.TaintTest
Bozuk sembolleri bu şekilde işaretleyin.

hata ayıklama.ViewCFG
Kontrol-Akış Grafiklerini kullanarak görüntüleyin GraphViz.

debug.ViewCallGraph
Arama Grafiği'ni kullanarak görüntüleyin GraphViz.

llvm.Konvansiyonlar
LLVM kod tabanı kuralları için kodu kontrol edin.

osx.API Çeşitli Mac OS X API'lerinin doğru kullanımlarını kontrol edin.

osx.AtomicCAS
Aramaları değerlendirin OSAtomik fonksiyonlar.

osx.SecKeychainAPI
Secure Keychain API'lerinin doğru kullanımlarını kontrol edin.

osx.kakao.AtSync
@synchronized için muteks olarak kullanılan boş göstericileri kontrol edin.

osx.cocoa.ClassRelease
Doğrudan bir Sınıfa 'tut', 'serbest bırak' veya 'otomatik yayınla' gönderilip gönderilmediğini kontrol edin.

osx.cocoa.UyumsuzYöntemTürleri
Tür uyumsuzlukları olan Objective-C yöntemi imzaları hakkında uyarın.

osx.cocoa.NSAutoreleaseHavuz
Optimal olmayan kullanımlar için uyar NSAutoreleaseHavuz Objective-C GC modunda.

osx.cocoa.NSError
NSError** parametrelerinin kullanımını kontrol edin.

osx.cocoa.NilArg
Objective-C yöntem çağrılarında yasaklanmış sıfır bağımsız değişkenlerini kontrol edin.

osx.cocoa.RetainCount
Sızıntıları ve yanlış referans sayısı yönetimini kontrol edin.

osx.cocoa.SelfInit
Bir başlatıcı yöntemi içinde 'self' öğesinin düzgün bir şekilde başlatıldığını kontrol edin.

osx.cocoa.KullanılmayanIvarlar
Hiç kullanılmayan özel ivarlar hakkında uyarın.

osx.cocoa.VariadicMethodTypes
Nesnel-C olmayan türlerin yalnızca bekleyen değişken yöntemlere geçirilip geçirilmediğini kontrol edin
Amaç-C türleri.

osx.coreFoundation.CFEError
CFErrorRef* parametrelerinin kullanımını kontrol edin.

osx.coreFoundation.CFNumber
uygun kullanımlarını kontrol edin. CFNumara Oluştur().

osx.coreFoundation.CFRetainRelease
için boş argümanlar olup olmadığını kontrol edin CFKoru() CFRlease(), ve CFMakeToplanabilir().

osx.coreFoundation.containers.OutOfBounds
kullanırken dizin sınırların dışında olup olmadığını kontrol eder. CFArray API.

osx.coreFoundation.containers.PointerSizedValues
Eğer uyarır CFArray, CFSözlükya da CFSayar işaretçi boyutu olmayan değerlerle oluşturulur.

güvenlik.FloatLoopCounter
Döngü sayacı olarak bir kayan nokta değeri kullanıldığında uyarın (CERT: FLP30-C, FLP30-CPP).

Security.insecureAPI.UncheckedReturn
Dönüş değerleri her zaman kontrol edilmesi gereken işlevlerin kullanımları konusunda uyarın.

güvenlik.insecureAPI.getpw
kullanımları konusunda uyarmak olsun().

güvenlik.insecureAPI.gets
kullanımları konusunda uyarmak gets().

güvenlik.insecureAPI.mkstemp
ne zaman uyar mkstemp() biçim dizesinde 6 X'ten daha az geçirilir.

güvenlik.insecureAPI.mktemp
kullanımları konusunda uyarmak mktemp().

güvenlik.insecureAPI.rand
kullanımları konusunda uyarmak tüm() rasgele() ve ilgili işlevler.

güvenlik.insecureAPI.strcpy
kullanımları konusunda uyarmak strcpy'nin() ve sokak kedisi().

güvenlik.insecureAPI.vfork
kullanımları konusunda uyarmak vfork().

unix.API
Çeşitli UNIX/Posix işlevlerine yapılan çağrıları kontrol edin.

unix.Malloc
Bellek sızıntılarını, çift boş ve boş kullanım sonrası kullanım olup olmadığını kontrol edin.

unix.cstring.BadSizeArg
Yaygın hatalar için C dize işlevlerine iletilen boyut bağımsız değişkenini kontrol edin
desenler.

unix.cstring.NullArg
C dize işlevlerine argüman olarak geçirilen boş işaretçileri kontrol edin.

ÖRNEK


tarama-yapı -o /tmp/myhtmldir yapmak -j4

Yukarıdaki örnek, analiz raporlarının bir alt dizine depolanmasına neden olur.
/tmp/myhtmldir ve koşmak yapmak ile -j4 seçenek. Farklı bir alt dizin oluşturuldu
her tarama-yapı bir projeyi analiz eder. Çözümleyici çoğu paralel yapıyı desteklemelidir,
ancak dağıtılmış yapılar değil.

YAZARLAR


tarama-yapı Ted Kremenek tarafından yazılmıştır. Katkıda bulunan belgeler
James K. Lowden[e-posta korumalı]>.

onworks.net hizmetlerini kullanarak scan-build-3.8'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad