ለC++ እና C ቋንቋዎች የማይንቀሳቀስ ኮድ ተንታኝ የ cppcheck 2.6 መልቀቅ

አዲስ የስታቲክ ኮድ analyzer cppcheck 2.6 ተለቋል፣ ይህም በC እና C++ ቋንቋዎች ውስጥ በኮድ ውስጥ ያሉ የተለያዩ ስህተቶችን ለመለየት ያስችላል፣ መደበኛ ያልሆነ አገባብ ሲጠቀሙ፣ ለተካተቱ ስርዓቶች የተለመደ። cppcheck ከተለያዩ የዕድገት ፣ ተከታታይ ውህደት እና የሙከራ ስርዓቶች ጋር የተዋሃደበት እና እንዲሁም የኮዱን ዘይቤ መከተልን ማረጋገጥ ያሉ ባህሪዎችን የሚያቀርብበት የተሰኪዎች ስብስብ ቀርቧል። ኮድን ለመተንተን የእራስዎን ተንታኝ ወይም የውጭ ተንታኝ ክላንግ መጠቀም ይችላሉ። እንዲሁም ለዴቢያን ፓኬጆች የትብብር የኮድ ግምገማ ስራን ለመስራት የሀገር ውስጥ ግብዓቶችን ለማቅረብ donate-cpu.py ስክሪፕትን ያካትታል። የፕሮጀክቱ ምንጭ ኮድ በ GPLv3 ፍቃድ ተሰራጭቷል.

የ cppcheck እድገት ያልተገለፀ ባህሪን እና ከደህንነት እይታ አንጻር አደገኛ የሆኑትን ንድፎችን በመጠቀም ችግሮችን በመለየት ላይ ያተኮረ ነው. ግቡ የውሸት አወንታዊ ውጤቶችን መቀነስም ነው። ከተለዩት ችግሮች መካከል፡ ወደ ላልሆኑ ነገሮች ጠቋሚዎች፣ ክፍፍሎች በዜሮ፣ ኢንቲጀር ሞልቶ መፍሰስ፣ የተሳሳተ የቢት ፈረቃ ስራዎች፣ የተሳሳቱ ልወጣዎች፣ ከማስታወስ ጋር ሲሰሩ ችግሮች፣ የ STL የተሳሳተ አጠቃቀም፣ ባዶ ጠቋሚ ማጣቀሻዎች፣ ከትክክለኛው መዳረሻ በኋላ ቼኮችን መጠቀም ወደ ቋት ፣ ቋት ተደራርቧል ፣ ያልታወቁ ተለዋዋጮችን መጠቀም።

በአዲሱ ስሪት:

  • የሚከተሉት ቼኮች ወደ ተንታኙ ኮር ተጨምረዋል፡
    • በተግባሩ አካል ውስጥ የመመለሻ ኦፕሬተር አለመኖር;
    • የተደራረቡ መረጃዎችን ይመዘግባል, ያልተገለጸ ባህሪን ይወስናል;
    • እያነጻጸሩ ያለው ዋጋ ከዓይነቱ ዋጋ ውክልና ውጭ ነው;
    • ቅጂ ማመቻቸት std: መንቀሳቀስ (አካባቢያዊ) ለመመለስ አይተገበርም;
    • ፋይሉ በተለያዩ ዥረቶች (ዥረት) ውስጥ ለማንበብ እና ለመፃፍ በአንድ ጊዜ መክፈት አይቻልም;
  • ለዩኒክስ የመሳሪያ ስርዓቶች በተለያዩ ቀለማት የመመርመሪያ መልዕክቶችን ለማሳየት ተጨማሪ ድጋፍ;
  • ለ ValueFlow ተምሳሌታዊ ትንታኔ ተጨምሯል። በሁለት የማይታወቁ ተለዋዋጮች መካከል ያለውን ልዩነት ሲያሰላ ቀላል ዴልታ ይጠቀማል;
  • ለታከኖች ዝርዝር ጥቅም ላይ የሚውሉት ደንቦች "መግለጽ" እንዲሁም # ማካተት ይችላሉ;
  • ቤተ መፃህፍቱ መለያ አሁን መለያን ሊይዝ ይችላል, እና በዚህ መሰረት ነፃ ተግባራት, እንደ std :: size, std :: empty, std :: መጀመሪያ, std :: መጨረሻ, ወዘተ የመሳሰሉ መያዣዎችን መቀበል ይችላል. ለመገናኛዎች ቢጫ ወይም ድርጊትን ሊገልጽ ይችላል;
  • የላይብረሪ መለያ አሁን ልዩ ባለቤትነት ላላቸው ብልጥ ጠቋሚዎች መለያ ሊይዝ ይችላል። ለእነዚህ አይነት ብልጥ ጠቋሚዎች ስለ ተንጠልጣይ ማጣቀሻዎች አሁን ማስጠንቀቂያ ተሰጥቷል።
  • የ-cppcheck-build-dir መለኪያን በማስኬድ ላይ የተስተካከሉ ችግሮች;
  • htmlreport አሁን ስለ ደራሲው መረጃ ማሳየት ይችላል (git ጥፋትን በመጠቀም);
  • ስለ ተለዋዋጭ ተለዋዋጭዎች የተራዘመ ማስጠንቀቂያዎች, ግን ሊሆኑ ይችላሉ;
  • የተተነተነው የተጠራቀሙ ስህተቶች እና ድክመቶች ተስተካክለዋል.

በተጨማሪም ማሻሻያ 2012 እና ማሻሻያ 1ን ጨምሮ ከሚስራ ሲ 2 የተገኙ ቼኮች ሙሉ በሙሉ ተግባራዊ ሆነዋል፣ ከህግ 1.1፣ 1.2 እና 17.3 በስተቀር። ቼኮች 1.1 እና 1.2 በአቀነባባሪው መከናወን አለባቸው. ማረጋገጫ 17.3 እንደ ጂ.ሲ.ሲ ባሉ አጠናቃሪዎች ሊከናወን ይችላል።

ምንጭ: opennet.ru

አስተያየት ያክሉ