Sakin cppcheck 2.6, madaidaicin lamba mai nazarin harsunan C++ da C

An fito da wani sabon salo na tsayayyen code analyzer cppcheck 2.6, wanda ke ba ka damar gano nau'ikan kurakurai daban-daban a cikin lambobi a cikin yarukan C da C++, gami da lokacin amfani da madaidaicin ma'auni, na yau da kullun don tsarin sakawa. An samar da tarin plugins ta hanyar da aka haɗa cppcheck tare da haɓaka daban-daban, ci gaba da haɗawa da tsarin gwaji, kuma yana ba da irin waɗannan fasalulluka kamar duba ƙa'idodin lambar tare da salon lambar. Don tantance lambar, zaku iya amfani da ko dai naku parser ko parser na waje daga Clang. Hakanan ya haɗa da rubutun donate-cpu.py don samar da albarkatun gida don yin aikin sake duba lambar haɗin gwiwa don fakitin Debian. Ana rarraba lambar tushe na aikin a ƙarƙashin lasisin GPLv3.

Ci gaban cppcheck yana mayar da hankali kan gano matsalolin da ke tattare da halayen da ba a bayyana ba da kuma amfani da zane-zane masu haɗari daga ra'ayi na aminci. Makasudin kuma shine a rage abubuwan karya. Daga cikin matsalolin da aka gano: masu nuni zuwa abubuwan da ba su wanzu, rarrabuwa ta sifili, rarrabuwa ta lamba, ayyukan canji ba daidai ba, canjin da ba daidai ba, matsaloli lokacin aiki tare da ƙwaƙwalwar ajiya, rashin amfani da STL mara kyau, ɓangarorin null pointer, amfani da cak bayan samun dama ta ainihi. zuwa ga buffer, buffer overruns , yin amfani da masu canji mara fahimta.

A cikin sabon sigar:

  • An ƙara waɗannan cak ɗin masu zuwa zuwa ainihin abin nazari:
    • rashin ma'aikacin dawowa a cikin jikin aiki;
    • yana rikodin bayanan da suka mamaye, yana ƙayyade halayen da ba a bayyana ba;
    • ƙimar da ake kwatantawa tana waje da ƙimar wakilcin nau'in;
    • kwafi ingantawa baya shafi komawa std :: motsawa (na gida);
    • ba za a iya buɗe fayil ɗin lokaci guda don karantawa da rubutu a cikin rafuka daban-daban (rafi);
  • don dandamali na Unix, ƙarin tallafi don nuna saƙonnin bincike a cikin launuka daban-daban;
  • ƙarin bincike na alama don ValueFlow. Yana amfani da delta mai sauƙi lokacin ƙididdige bambanci tsakanin masu canji guda biyu da ba a san su ba;
  • Dokokin da aka yi amfani da su don jerin alamun "bayyana" suna iya daidaitawa #include;
  • dakin karatu tag yanzu yana iya ƙunsar tag , kuma daidai da ayyukan kyauta, wanda zai iya karɓar kwantena kamar std :: size, std :: fanko, std :: farawa, std :: karshen, da dai sauransu. zai iya ƙayyade yeld ko aiki don masu haɗawa;
  • dakin karatu tag yanzu yana iya ƙunsar tag ga masu nuni masu kaifin basira waɗanda ke da mallaki na musamman. Yanzu an ba da gargaɗi game da nassoshi masu banƙyama ga waɗannan nau'ikan masifu masu wayo;
  • ƙayyadaddun matsaloli tare da sarrafa ma'aunin -cppcheck-build-dir;
  • Rahoton html yanzu na iya nuna bayanai game da marubucin (ta amfani da zargi git);
  • faɗaɗa faɗakarwa game da masu canji waɗanda ba koyaushe ba, amma suna iya zama;
  • An gyara kurakurai da aka tara da kasawar mai nazarin.

Bugu da ƙari, cak ɗin daga Misra C 2012, gami da Kwaskwarimar 1 da Kwaskwarimar 2, an cika aiwatar da su, ban da dokoki 1.1, 1.2 da 17.3. Dubawa 1.1 da 1.2 dole ne a yi ta mai tarawa. Tabbatarwa 17.3 na iya yin ta mai tarawa kamar GCC.

source: budenet.ru

Add a comment