Kutulutsidwa kwa cppcheck 2.6, static code analyzer ya C++ ndi C zinenero

Mtundu watsopano wa static code analyzer cppcheck 2.6 watulutsidwa, womwe umakupatsani mwayi wozindikira zolakwa zosiyanasiyana m'zilankhulo za C ndi C ++, kuphatikiza mukamagwiritsa ntchito mawu osagwirizana, omwe amafanana ndi machitidwe ophatikizidwa. Kusonkhanitsa kwa mapulagini kumaperekedwa kudzera momwe cppcheck ikuphatikizidwa ndi chitukuko chosiyanasiyana, kusakanikirana kosalekeza ndi machitidwe oyesera, komanso amapereka zinthu monga kufufuza kachidindo kachitidwe ka code. Kuti muwerenge kachidindo, mutha kugwiritsa ntchito cholembera chanu kapena chowerengera chakunja kuchokera ku Clang. Zimaphatikizansopo zolemba za donate-cpu.py kuti zipereke zothandizira zakomweko kuti achite ntchito yowunikiranso ma code pamaphukusi a Debian. Khodi yoyambira polojekitiyi imagawidwa pansi pa layisensi ya GPLv3.

Kukula kwa cppcheck kumayang'ana pa kuzindikira mavuto okhudzana ndi khalidwe losadziwika bwino komanso kugwiritsa ntchito mapangidwe omwe ali owopsa kuchokera kumalo otetezeka. Cholinga ndikuchepetsanso zinthu zabodza. Zina mwazovuta zomwe zazindikirika: zolozera kuzinthu zomwe palibe, magawo ndi ziro, kuchuluka kwachulukidwe, kusintha kolakwika, kutembenuka kolakwika, zovuta mukamagwira ntchito ndi kukumbukira, kugwiritsa ntchito molakwika STL, kuyika kwa null pointer, kugwiritsa ntchito macheke pambuyo pa mwayi weniweni. ku buffer, buffer overruns, kugwiritsa ntchito zosintha zosazindikirika.

Mu mtundu watsopano:

  • Macheke otsatirawa awonjezedwa ku analyzer core:
    • kusowa kwa wobwezera ntchito mu bungwe la ntchito;
    • imalemba zomwe zikugwirizana, zimatsimikizira khalidwe losadziwika;
    • mtengo womwe ukufaniziridwa uli kunja kwa chifaniziro cha mtengo;
    • kukopera kukhathamiritsa sikugwira ntchito kubwerera std ::move(local);
    • fayilo silingatsegulidwe nthawi imodzi kuti muwerenge ndi kulemba mumitsinje yosiyanasiyana (mtsinje);
  • pamapulatifomu a Unix, adawonjezera chithandizo chowonetsera mauthenga ozindikira mitundu yosiyanasiyana;
  • anawonjezera kusanthula kophiphiritsa kwa ValueFlow. Amagwiritsa ntchito delta yosavuta powerengera kusiyana pakati pa mitundu iwiri yosadziwika;
  • malamulo omwe amagwiritsidwa ntchito pa mndandanda wa zizindikiro "kutanthauzira" akhozanso kufanana #include;
  • laibulale tag tsopano ikhoza kukhala ndi tag , ndipo molingana ndi ntchito zaulere, zomwe zimatha kuvomereza zotengera monga std::size, std::zopanda kanthu, std::kuyamba, std::end, etc. akhoza kufotokoza yeld kapena zochita kwa zolumikizira;
  • laibulale tag tsopano ikhoza kukhala ndi tag zolozera zanzeru zomwe zili ndi umwini wapadera. Chenjezo laperekedwa tsopano lokhudza maumboni olendewera ku mitundu iyi ya zolozera zanzeru;
  • mavuto okhazikika pakukonza -cppcheck-build-dir parameter;
  • htmlreport tsopano ikhoza kuwonetsa zambiri za wolemba (pogwiritsa ntchito git blame);
  • machenjezo owonjezera okhudza zosinthika zomwe sizikhazikika, koma zitha kukhala;
  • Zolakwa zosonkhanitsidwa ndi zofooka za analyzer zakonzedwa.

Kuphatikiza apo, macheke ochokera ku Misra C 2012, kuphatikiza Amendment 1 ndi Amendment 2, akwaniritsidwa kwathunthu, kupatula malamulo 1.1, 1.2 ndi 17.3. Macheke 1.1 ndi 1.2 ayenera kuchitidwa ndi wolemba. Kutsimikizira 17.3 kutha kuchitidwa ndi wophatikiza monga GCC.

Source: opennet.ru

Kuwonjezera ndemanga