Scaoileadh cppcheck 2.6, anailísí cód statach le haghaidh teangacha C++ agus C

Eisíodh leagan nua den anailísí cód statach cppcheck 2.6, a ligeann duit aicmí éagsúla earráidí cód a aithint sna teangacha C agus C++, lena n-áirítear nuair a bhíonn comhréir neamhchaighdeánach in úsáid, atá tipiciúil do chórais leabaithe. Soláthraítear bailiúchán breiseán trína ndéantar cppcheck a chomhtháthú le córais forbartha, comhtháthú leanúnach agus tástála éagsúla, agus soláthraíonn sé freisin gnéithe cosúil le comhlíonadh cód a sheiceáil leis an stíl chóid. Chun cód a pharsáil, is féidir leat do pharsálaí féin nó parsálaí seachtrach a úsáid ó Clang. Áiríonn sé freisin an script donate-cpu.py chun acmhainní áitiúla a sholáthar chun obair athbhreithnithe cód comhoibríoch a dhéanamh do phacáistí Debian. Déantar cód foinse an tionscadail a dháileadh faoin gceadúnas GPLv3.

Tá forbairt cppcheck dírithe ar fhadhbanna a bhaineann le hiompar neamhshainithe a aithint agus ar úsáid dearaí atá contúirteach ó thaobh sábháilteachta de. Is é an sprioc freisin dearfacha bréagacha a íoslaghdú. I measc na bhfadhbanna a aithníodh: leideanna maidir le rudaí nach bhfuil ann, rannáin ag nialas, ró-shreabhadh slánuimhir, oibríochtaí aistrithe giotán mícheart, tiontuithe mícheart, fadhbanna le linn oibriú le cuimhne, úsáid mhícheart STL, díléiriú pointeoir nialasach, úsáid seiceálacha tar éis an rochtain iarbhír leis an maolán, róchaiteachas maolánach , úsáid athróg neamhthionscanta.

Sa leagan nua:

  • Cuireadh na seiceálacha seo a leanas le croí an anailíseora:
    • easpa oibreora fillte sa chomhlacht feidhme;
    • taifid sonraí forluiteacha, cinneann iompar neamhshainithe;
    • tá an luach atá á chur i gcomparáid lasmuigh d'ionadaíocht luacha an chineáil;
    • ní bhaineann leas iomlán a bhaint as cóip chun std a sheoladh ar ais::move(local);
    • ní féidir an comhad a oscailt go comhuaineach lena léamh agus a scríobh i sruthanna éagsúla (sruth);
  • le haghaidh ardáin Unix, tacaíocht bhreise chun teachtaireachtaí diagnóiseacha a thaispeáint i ndathanna éagsúla;
  • anailís siombalach breise do ValueFlow. Úsáideann sé deilt shimplí agus an difríocht idir dhá athróg anaithnid á ríomh;
  • is féidir leis na rialacha a úsáidtear don liosta comharthaí "define" a bheith ag teacht le #include;
  • is féidir clib a bheith i gclib na leabharlainne anois, agus dá réir sin feidhmeanna in aisce, ar féidir leo glacadh le coimeádáin mar std::size, std::empty, std::begin, std::end, etc. is féidir leis an toradh nó gníomh a shonrú do chónaisc;
  • Is féidir clib le haghaidh leideanna cliste a bhfuil úinéireacht uathúil acu a bheith sa chlib leabharlainne anois. Tá rabhadh eisithe anois maidir le tagairtí do na cineálacha leideanna cliste seo a cheilt;
  • fadhbanna seasta le próiseáil an pharaiméadar —cppcheck-build-dir;
  • is féidir le htmlreport faisnéis a thaispeáint faoin údar anois (ag úsáid git blame);
  • rabhaidh leathnaithe faoi athróga nach bhfuil tairiseach, ach a d'fhéadfadh a bheith;
  • Ceartaíodh earráidí carntha agus easnaimh an anailíseora.

Ina theannta sin, tá na seiceálacha ó Misra C 2012, lena n-áirítear Leasú 1 agus Leasú 2, curtha chun feidhme go hiomlán, seachas rialacha 1.1, 1.2 agus 17.3. Ní mór don tiomsaitheoir seiceálacha 1.1 agus 1.2 a dhéanamh. Is féidir le tiomsaitheoir ar nós GCC fíorú 17.3 a dhéanamh.

Foinse: oscailtenet.ru

Add a comment