Bir statik kod analiz aracı seçme

oy
54

Ben UNIX ortamında C kodlama olduğum bir proje üzerinde çalışıyorum. Benim kaynak kodunu kontrol etmek tiftik aracını kullanıyorum. Lint (1979 yılından bu yana) uzun süre olmuştur, herkes kullanabilir miyim daha yeni kod analiz aracı önerebilir? Tercihen serbest bir araçtır.

Oluştur 05/08/2008 saat 22:19
kaynak kullanıcı
Diğer dillerde...                            


15 cevaplar

oy
30

derleyici kendisi göz ardı etmeyin.

derleyici'nın Belgeleri okuyun ve sağlayabilir tüm uyarıları ve hataları bulmak ve sonra sizin için yapmak anlamda olduğu kadar çok etkinleştirin.

Ayrıca hemen bunları düzeltmek zorunda kadar emin hataları gibi uyarılar tedavi etmek için derleyici anlatmak olun. (Gcc üzerinde "-Werror kullanmamak")

Ayrıca: yok gcc üzerinde "-Wall" değil tüm uyarıları etkinleştirmek, kanmayın.

Ayrıca da: valgrind edin - bu "otomatik olarak [ler] Birçok bellek yönetimi ve parçacığı böcek ve profil [s] ayrıntılı olarak programları algılar." (Ücretsiz!)

Valgrind değil statik bir denetleyicisi, ama harika bir araç! http://valgrind.org

Cevap 05/08/2008 saat 23:17
kaynak kullanıcı

oy
14

C kodu için kesinlikle kesinlikle kullanmalısınız Flexelint . Neredeyse 15 yıldır kullanmış ve onun tarafından yemin ederim. Sahip olduğu gerçekten büyük özelliklerinden biri uyarılar seçici kodunda yorumlar aracılığıyla ilgili kapalı ve edilebilmesidir ( "/ * tüysüz -e123 * /"). Bu sıradan dışında bir şey istediğinde güçlü bir dokümantasyon aracı olduğu ortaya çıktı. "Ben uyarı X kapatarak am, bu nedenle, ben X yapıyorum bazı iyi bir neden yoktur"

ilginç C / C ++ soruları kimseye için kendi sitesinde kendi örneklerden bazıları bakmak ve ipuçları bakmadan böcek anlamaya görmek.

Cevap 05/08/2008 saat 22:42
kaynak kullanıcı

oy
12

Ben hakkında iyi şeyler duydum clang statik analizörü Arka sunucunun olduğu gibi IIRC LLVM kullanır. Bu senin platformda hayata geçtiyse, bu iyi bir seçim olabilir.

Anladığım kadarıyla, bu sadece sözdizimi analizi biraz daha yapar. Örneğin "Otomatik Hata Bulma",.

Cevap 06/08/2008 saat 01:40
kaynak kullanıcı

oy
5

Geçenlerde benim emrinde olduğum tüm statik analiz araçların listesini derlenmiş, hepsini değerlendirmek sürecinde hala duyuyorum. Bu çoğunlukla güvenlik analiz araçları vardır, unutmayın.

Cevap 03/09/2008 saat 23:11
kaynak kullanıcı

oy
5

Biz kullanıyorum coverity önleyin C ++ kaynak kodunu kontrol etmek.

(Onlar açık kaynak projeleri için ücretsiz tarama sunuyoruz inanıyoruz rağmen) Bu ücretsiz bir araç değil, ama bu size bulabileceğiniz en iyi statik analiz araçlarından biridir bu. Ben bile C ++ üzerinde daha C'nin üzerinde daha etkileyici olduğunu duydum, ama bize şu ana kadar hataların oldukça çok sayıda önlemek yardımcı oldu.

Cevap 15/08/2008 saat 18:47
kaynak kullanıcı

oy
4

Sen kullanabilirsiniz cppcheck . Statik kod analiz aracı kullanmak için bir kolaydır.
Örneğin:
cppcheck --enable=all .
Mevcut klasör altındaki tüm C / C ++ dosyaları kontrol edecektir.

Cevap 25/06/2015 saat 15:54
kaynak kullanıcı

oy
1

Deneyebilirsin CppDepend VS Eklentisi IDE veya komut satırından düşünce, windows ve linux üzerinde mevcut oldukça komple statik analizörü, ve o için ücretsiz açık kaynak katkıda

Cevap 26/06/2015 saat 12:01
kaynak kullanıcı

oy
1

PC-tüysüz / Flexelint olsa ne yazık ki özgür değil, çok güçlü ve kullanışlı statik analiz araçları ve son derece yapılandırılabilir.

İlk böyle bir aracı kullanırken, onlar zor büyük ve küçük olanları ayırt etmek yapabilirsiniz uyarıları muazzam sayıda, üretebilir. ortaya çıktıkça yeni uyarılar başa böylece nedenle, olabildiğince sık olarak kod üzerinde çalıştırmak sonra mümkün olduğunca erken projesinde kodunuzu aracını kullanarak başlamak en iyisidir ve.

Böyle sürekli kullanımı ile, yakında araç tarafından uygulanan kurallara onaylayan bir şekilde kod yazmak için öğrenirler.

Bu nedenle, ben nispeten hızlı bir şekilde çalıştırmak Lint gibi araçları tercih ve böylece yerine size hiç değilse, daha az sıklıkla kullanarak sonu olabilir daha hantal araçlar daha sürekli kullanımını teşvik edin.

Cevap 20/12/2008 saat 00:29
kaynak kullanıcı

oy
1

Lint benzeri aletler genellikle "yanlış alarm" sorunu muzdarip: onlar gerçekten var çok daha fazla sorunları rapor. gerçekten-kullanışlı uyarıları oranı çok düşükse, kullanıcı sadece aracı görmezden öğrenir. Daha modern araçları büyük olasılıkla / ilginç uyarılara odaklanmak için çaba sarf.

Cevap 23/08/2008 saat 15:29
kaynak kullanıcı

oy
1

Sen bulabilir Uno aracı yararlıdır. Bu birkaç ücretsiz olmayan oyuncak seçeneklerden biri. Bu "anlam" hataları (boş gösterici derefs, dışı sınır dizisi endeksleri ve başlatılmamış değişkenlerin kullanımı), az sayıda odaklanarak vb tiftiği, Flexelint farklıdır. Ayrıca kilit açma disiplin gibi kullanıcı tanımlı kontrolleri, izin verir.

Bir halef aracı, bir kamu tahliye yönünde çalışıyorum Orion ( ARTIK MEVCUT DEĞİL İÇERİK )

Cevap 15/08/2008 saat 23:39
kaynak kullanıcı

oy
0

Seyrek Linux çekirdeği mümkün kodlama hataları bulmak için tasarlanmış bir bilgisayar programı aracı, Linux üzerinde zaten mevcuttur vardır.

İki aktif proje bulunmaktadır Linux Doğrulama Merkezi yüklenebilir kernel modülleri kalitesini artırmak amaçlanmıştır.

  1. Linux Sürücüsü Doğrulaması (LDV) - Linux aygıt sürücüleri statik kaynak kod doğrulama için kapsamlı bir araç seti.
  2. KEDR Çerçeve - Dinamik analiz ve çekirdek modüllerinin doğrulanması için genişletilebilir bir çerçevedir.
  3. Başka devam eden proje Linux Linux dosya sistemi uygulamalarının doğrulanması için özel bir araç kümesi geliştirmeyi amaçlamaktadır Sistem Dosya Doğrulama olduğunu.
Cevap 20/12/2012 saat 08:36
kaynak kullanıcı

oy
0

Ben hata bulmak için birden fazla statik analiz araçları kullanmak genellikle en iyi olduğunu gördük. Her aletin farklı tasarlanmış ve onlar birbirinden çok farklı şeyler bulabilirsiniz.

Bazı görüşmelerde bazı iyi tartışmalar vardır burada . Statik analiz, ABD İç Güvenlik Bakanlığı tarafından düzenlenen bir konferanstan bu.

Cevap 15/06/2011 saat 07:53
kaynak kullanıcı

oy
0

İyi günler,

Tamamen okumak ve derleyici -Wall ayarladıktan sonra size anlattıklarını sindirmek için önerileri katılıyorum.

Güvenlik için iyi bir statik analiz aracı olan FlawFinder David Wheeler tarafından yazılan. Bu iyi bir iş, çeşitli güvenlik açıkları arayan yok

Ancak, bilgili birisi kodu ile okumak zorunda yerine geçmez. Davut web sayfasında söylediği gibi, "Bir araç ile bir aptal hala bir aptal!"

şerefe,

soymak

Cevap 26/08/2008 saat 16:21
kaynak kullanıcı

oy
0

tüysüz sürekli güncellenen ... o yüzden neden daha yeni bir tane isteyeyim.

Btw flexelint olan tiftik

Cevap 23/08/2008 saat 12:42
kaynak kullanıcı

oy
0

Bir "-Weffc ++" gcc için bir seçenek var ki Mac OS X adam sayfasına göre yapacaktır:

Scott Meyer'in Etkili C ++ kitabından aşağıdaki stil kuralları ihlalleri hakkında uyar:

[Kesik]

Sana C hakkında sorulan biliyorum, ama bu benim bildiğim en yakın olan ..

Cevap 15/08/2008 saat 23:03
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more