Rilis cppcheck 2.6, penganalisa kode statis kanggo basa C++ lan C

Versi anyar saka analisa kode statis cppcheck 2.6 wis dirilis, sing ngijini sampeyan kanggo ngenali macem-macem kelas kesalahan kode ing basa C lan C ++, kalebu nalika nggunakake sintaksis non-standar, khas kanggo sistem ditempelake. Koleksi plugin diwenehake liwat cppcheck digabungake karo macem-macem pembangunan, integrasi terus-terusan lan sistem pengujian, lan uga nyedhiyakake fitur kayata mriksa kepatuhan kode karo gaya kode. Kanggo parse kode, sampeyan bisa nggunakake salah siji parser dhewe utawa parser external saka Clang. Uga kalebu skrip donate-cpu.py kanggo nyedhiyakake sumber daya lokal kanggo nindakake karya review kode kolaborasi kanggo paket Debian. Kode sumber proyek kasebut disebarake miturut lisensi GPLv3.

Pangembangan cppcheck fokus ing ngenali masalah sing ana gandhengane karo prilaku sing ora ditemtokake lan nggunakake desain sing mbebayani saka sudut pandang safety. Tujuane uga kanggo nyilikake positip palsu. Antarane masalah sing diidentifikasi: penunjuk kanggo obyek sing ora ana, divisi kanthi nol, overflows integer, operasi shift bit sing salah, konversi sing salah, masalah nalika nggarap memori, panggunaan STL sing ora bener, dereferensi pointer null, panggunaan mriksa sawise akses nyata. menyang buffer, buffer overruns, nggunakake variabel uninitialized.

Ing versi anyar:

  • Pemeriksa ing ngisor iki wis ditambahake menyang inti analisa:
    • ora ana operator bali ing awak fungsi;
    • nyathet data sing tumpang tindih, nemtokake prilaku sing ora ditemtokake;
    • nilai sing dibandhingake ing njaba perwakilan nilai saka jinis;
    • optimasi salinan ora ditrapake kanggo bali std :: pamindhahan (lokal);
    • file ora bisa dibukak bebarengan kanggo maca lan nulis ing aliran beda (stream);
  • kanggo platform Unix, nambahake dhukungan kanggo nampilake pesen diagnostik ing macem-macem warna;
  • ditambahake analisis simbolis kanggo ValueFlow. Nggunakake delta prasaja nalika ngetung prabΓ©dan antarane rong variabel dingerteni;
  • aturan sing digunakake kanggo dhaptar token "netepake" uga bisa cocog #include;
  • tag perpustakaan saiki bisa ngemot tag , lan fungsi gratis, sing bisa nampa wadah kayata std :: size, std :: kosong, std :: begin, std :: end, lsp. bisa nemtokake yeld utawa tumindak kanggo konektor;
  • Tag perpustakaan saiki bisa ngemot tag kanggo penunjuk pinter sing nduweni kepemilikan unik. A bebaya saiki ditanggepi babagan referensi dangling kanggo jinis penunjuk pinter iki;
  • masalah tetep karo ngolah parameter -cppcheck-build-dir;
  • htmlreport saiki bisa nampilake informasi babagan penulis (nggunakake git blame);
  • bebaya lengkap babagan variabel sing ora tetep, nanging bisa uga;
  • Kesalahan akumulasi lan kekurangan analisa wis didandani.

Kajaba iku, mriksa saka Misra C 2012, kalebu Amandemen 1 lan Amandemen 2, wis dileksanakake kanthi lengkap, kajaba aturan 1.1, 1.2 lan 17.3. Priksa 1.1 lan 1.2 kudu ditindakake dening compiler. Verifikasi 17.3 bisa ditindakake dening kompiler kayata GCC.

Source: opennet.ru

Add a comment