Mwepụta nke cppcheck 2.6, ihe nyocha koodu static maka asụsụ C++ na C

E wepụtala ụdị ọhụụ nke static code analyzer cppcheck 2.6, nke na-enye gị ohere ịchọpụta klaasị dị iche iche nke njehie na koodu n'asụsụ C na C ++, gụnyere mgbe ị na-eji syntax na-abụghị ọkọlọtọ, nke a na-ahụkarị maka sistemụ agbakwunyere. A na-enye nchịkọta plugins site na nke cppcheck na-ejikọta ya na mmepe dị iche iche, ntinye na usoro nyocha na-aga n'ihu, ma na-enyekwa atụmatụ dị ka ịlele nnabata koodu na ụdị koodu. Iji tugharia koodu, ị nwere ike iji parser nke gị ma ọ bụ ihe nzacha mpụga sitere na Clang. Ọ gụnyekwara edemede onyinye-cpu.py iji nye akụrụngwa mpaghara iji rụọ ọrụ nyocha koodu ọnụ maka ngwugwu Debian. A na-ekesa koodu isi mmalite nke ọrụ ahụ n'okpuru ikikere GPLv3.

Mmepe nke cppcheck na-elekwasị anya n'ịchọpụta nsogbu ndị metụtara omume na-akọwaghị na iji atụmatụ ndị dị ize ndụ site na echiche nchekwa. Ebumnobi a bụkwa ibelata ihe ndị na-adịghị mma. N'ime nsogbu ndị achọpụtara: ihe na-egosi ihe ndị na-adịghị adị, nkewa site na efu, integer overflows, ezighị ezi bit ọrụ mgbanwe, na-ezighị ezi ntughari, nsogbu mgbe na-arụ ọrụ na ebe nchekwa, na-ezighị ezi ojiji nke STL, null pointer dereferences, ojiji nke elele mgbe ezi ohere. na ihe nchekwa, ihe nchekwa gabigara, ojiji nke mgbanwe ndị na-amaghị ama.

Na ụdị ọhụrụ:

  • Agbakwunyela ego nlele ndị a na isi ihe nyocha:
    • enweghị onye ọrụ nloghachi na ahụ ọrụ;
    • na-edekọ data overlapping, na-ekpebi omume na-akọwaghị;
    • uru a na-atụnyere bụ n'èzí ihe nnọchianya nke ụdị ahụ;
    • oyiri njikarịcha anaghị emetụta ịlaghachi std :: ịkwaga (mpaghara);
    • enweghị ike imeghe faịlụ ahụ n'otu oge maka ịgụ na ide na iyi dị iche iche (iyi);
  • maka nyiwe Unix, agbakwunyere nkwado maka igosipụta ozi nyocha na agba dị iche iche;
  • agbakwunyere nyocha ihe atụ maka ValueFlow. Na-eji delta dị mfe mgbe ọ na-agbakọ ọdịiche dị n'etiti mgbanwe abụọ amaghi ama;
  • iwu eji maka ndepụta nke akara "akọwapụta" nwekwara ike dakọtara #include;
  • Ọbá akwụkwọ mkpado nwere ike ịnwe mkpado , ya mere ọrụ efu, nke nwere ike ịnakwere arịa dị ka std :: size, std :: efu, std :: mmalite, std :: ọgwụgwụ, wdg. nwere ike ịkọwa yeld ma ọ bụ omume maka njikọ;
  • Mkpado ụlọ akwụkwọ nwere ike ịnwe mkpado maka ihe nrịbama smart nwere ikike pụrụ iche. A na-enye ịdọ aka ná ntị ugbu a banyere ntụaka na-akụda mmụọ na ụdị ndị a maara ihe;
  • nsogbu edoziziri na nhazi paramita -cppcheck-build-dir;
  • htmlreport nwere ike igosipụta ozi gbasara onye odee (iji git ụta);
  • ịdọ aka ná ntị agbatịkwuru banyere mgbanwe ndị na-adịghị agbanwe agbanwe, mana nwere ike ịbụ;
  • A na-edozi njehie na adịghị ike nke onye nyocha.

Na mgbakwunye, akwụkwọ ndenye ego sitere na Misra C 2012, gụnyere Ndezigharị 1 na Ndezigharị 2, emejuputala nke ọma, ewezuga iwu 1.1, 1.2 na 17.3. A ga-emerịrị nlele 1.1 na 1.2 site na ndị nchịkọta. Enwere ike ịme nkwenye 17.3 site na onye nchịkọta dịka GCC.

isi: opennet.ru

Tinye a comment