Java memiliki beberapa alat analisis statis open source yang sangat baik seperti FindBugs , Checkstyle dan PMD . Alat-alat itu mudah digunakan, sangat membantu, berjalan pada banyak sistem operasi dan gratis .
Produk analisis statis C ++ komersial tersedia. Meskipun memiliki produk seperti itu bagus, biayanya terlalu banyak untuk siswa dan biasanya agak sulit untuk mendapatkan versi percobaan.
Alternatifnya adalah menemukan alat analisis statis C ++ open source yang akan berjalan pada banyak platform (Windows dan Unix). Dengan menggunakan alat open source, itu dapat dimodifikasi agar sesuai dengan kebutuhan tertentu. Menemukan alat bukanlah tugas yang mudah.
Di bawah ini adalah daftar pendek alat analisis statis C ++ yang ditemukan atau disarankan oleh orang lain.
- C ++ Periksa http://sf.net/projects/cppcheck/
- Oink http://danielwilkerson.com/oink/index.html
- Penghitung Kode C dan C ++ http://sourceforge.net/projects/cccc/
- Belat (dari jawaban)
- Daging Babi Mozilla (dari jawaban) (Sekarang bagian dari Oink)
- Dehidra Mozilla (dari jawaban)
- Gunakan opsi
-Weffc++
untuk GNU g ++ (dari jawaban)
Apa adalah beberapa lainnya portabel open source C ++ alat analisis statis yang ada yang tahu dari dan dapat direkomendasikan?
Beberapa tautan terkait.
- /programming/97454/c-static-code-analysis-tool-on-windows
- http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
- http://www.chris-lott.org/resources/cmetrics/
- Alat gratis untuk memeriksa kode sumber C / C ++ terhadap sekumpulan standar pengkodean?
- http://spinroot.com/static/
- Memilih alat analisis kode statis
sumber
Jawaban:
Oink adalah alat yang dibangun di atas front-end Elsa C ++. Babi Mozilla adalah garpu dari Elsa / Oink.
Lihat: http://danielwilkerson.com/oink/index.html
sumber
CppCheck adalah open source dan cross-platform.
Mac OSX:
sumber
choco install cppcheck
Mengenai kompiler GNU, gcc sudah memiliki opsi builtin yang memungkinkan peringatan tambahan bagi mereka -Dinding. Opsinya adalah -Weffc ++ dan ini tentang pelanggaran beberapa pedoman Scott Meyers yang diterbitkan dalam buku-bukunya " C ++ Efektif dan Lebih Efektif ".
Khususnya opsi mendeteksi item berikut:
sumber
-Weffc++
memperingatkan tentang ton konstruksi yang baik-baik saja dalam basis kode besar. Namun, saya mendukung saran-Wextra
; jangan tinggalkan rumah tanpanya!Dalam pengembangan untuk saat ini, tetapi dentang melakukan analisis C dan ditargetkan untuk menangani C ++ seiring waktu. Itu bagian dari proyek LLVM .
Pembaruan : Sementara halaman arahan mengatakan "Penganalisis adalah pekerjaan yang sedang berlangsung", namun sekarang didokumentasikan sebagai penganalisa statis untuk C dan C ++.
Pertanyaan: Bagaimana saya bisa menjalankan GCC / Dentang untuk analisis statis? (hanya peringatan)
Opsi kompiler: -fsyntax-only
sumber
Orang lain menyebutkan -Weffc ++, tapi itu sebenarnya satu-satunya peringatan GCC yang tidak saya nyalakan secara default. Namun, rangkaian peringatan yang saya nyalakan adalah alat analisis statis paling penting dalam kit saya. Anda dapat melihat daftar lengkap peringatan yang direkomendasikan .
Singkatnya:
Perhatikan bahwa beberapa di antaranya memerlukan versi gcc baru, jadi Anda mungkin perlu menghilangkannya dari daftar jika Anda terjebak pada 4,5 atau sesuatu.
sumber
John Carmack juga menyebutkan PVS-Studio dalam posting blog yang menarik ini tentang "Analisis Kode Statis" .
sumber
Jika dengan Open Source, Anda benar-benar berarti "gratis", maka analisis cepat Microsoft adalah bagus. Khusus Windows saja. Ini sepenuhnya terintegrasi dalam Visual Studio & kompiler. misalnya:
sumber
Pekerjaan analisis statis Mozilla mungkin patut dilihat.
sumber
Belat tampaknya mengisi tagihan untuk C.
Jika Anda tidak menentukan open source saya akan mengatakan Gimpel Software 's PCLint mungkin salah satu alat terbaik yang tersedia untuk statis memeriksa kode dalam C ++. Tapi, tentu saja, itu bukan open source.
Mac OSX:
sumber
PREFast Microsoft juga tersedia di Kit Driver Windows. Versi 7.0 dapat diunduh di sini .
Dokumen Microsoft menyatakan bahwa itu hanya boleh dijalankan terhadap kode driver tetapi posting blog ini (lama) menjabarkan langkah-langkah untuk menjalankannya. Mungkin bisa diintegrasikan ke dalam proses pembangunan normal?
sumber
Kami sedang mengerjakan plug-in Eclipse CDT yang disebut metriculator. Ini masih dalam pengembangan tetapi beberapa metrik utama (misalnya LSLOC, McCabe, EfferentCoupling) sudah diterapkan.
Lihat http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation untuk detail lebih lanjut seperti demonstrasi dan dokumentasi video.
Bangunan malam terbaru tersedia untuk instalasi melalui situs pembaruan di: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/
Keterangan Lebih Lanjut
Metrikulator secara statis menganalisis kode sumber C ++ dan menghasilkan metrik perangkat lunak. Metrik diimplementasikan sebagai catur Codan. Hasil analisis dapat dieksplorasi dalam tampilan terpisah. Setiap metrik memiliki properti yang dapat dikonfigurasi (misalnya ambang untuk 'baris maksimum kode per fungsi'). Melampaui ambang ini akan melaporkan masalah dan membuat penanda di editor kode sumber.
dengan metrikulator Anda dapat:
Saat ini metrikulator dilengkapi dengan metrik berikut:
sumber
Anda harus mencoba oo-browser yang memiliki integrasi hebat dengan xemacs
sumber
Satu juga dapat kode ekstensi GCC di MELT (bahasa domain khusus yang dirancang untuk memperluas GCC) atau plugin GCC di C (jauh lebih sulit) untuk melakukan beberapa analisis khusus.
sumber
Doxygen melakukan beberapa analisis aliran kontrol dan menghasilkan grafik. Itu mungkin bukan yang Anda cari, tetapi saya telah menemukan mereka berguna untuk dilihat.
sumber