C++ සහ C භාෂා සඳහා ස්ථිතික කේත විශ්ලේෂකයක් වන cppcheck 2.6 නිකුත් කිරීම

ස්ථිතික කේත විශ්ලේෂකය cppcheck 2.6 හි නව අනුවාදයක් නිකුත් කර ඇත, එමඟින් C සහ C++ භාෂාවල කේතවල විවිධ පන්ති දෝෂ හඳුනා ගැනීමට ඉඩ සලසයි, කාවැද්දූ පද්ධති සඳහා සාමාන්‍ය සම්මත නොවන වාක්‍ය ඛණ්ඩ භාවිතා කරන විට ඇතුළුව. ප්ලගීන එකතුවක් සපයනු ලබන අතර එමඟින් cppcheck විවිධ සංවර්ධන, අඛණ්ඩ ඒකාබද්ධ කිරීම් සහ පරීක්ෂණ පද්ධති සමඟ ඒකාබද්ධ කර ඇති අතර කේත ශෛලිය සමඟ කේත අනුකූලතාවය පරීක්ෂා කිරීම වැනි විශේෂාංග ද සපයයි. කේතය විග්‍රහ කිරීමට, ඔබට ඔබේම විග්‍රහකය හෝ Clang වෙතින් බාහිර විග්‍රහයක් භාවිත කළ හැක. ඩේබියන් පැකේජ සඳහා සහයෝගිතා කේත සමාලෝචන කටයුතු කිරීමට දේශීය සම්පත් සැපයීමට donate-cpu.py ස්ක්‍රිප්ට් ද එයට ඇතුළත් වේ. ව්‍යාපෘතියේ මූල කේතය GPLv3 බලපත්‍රය යටතේ බෙදා හැරේ.

cppcheck හි සංවර්ධනය, නිර්වචනය නොකළ හැසිරීම් හා සම්බන්ධ ගැටළු හඳුනා ගැනීම සහ ආරක්ෂිත දෘෂ්ටි කෝණයකින් අනතුරුදායක මෝස්තර භාවිතා කිරීම කෙරෙහි අවධානය යොමු කරයි. ව්‍යාජ ධනාත්මක කරුණු අවම කිරීම ද අරමුණයි. හඳුනාගත් ගැටළු අතර: නොපවතින වස්තූන් වෙත දර්ශක, ශුන්‍ය බෙදීම්, නිඛිල පිටාර ගැලීම්, වැරදි බිටු මාරු මෙහෙයුම්, වැරදි පරිවර්තන, මතකය සමඟ වැඩ කිරීමේදී ගැටළු, STL වැරදි භාවිතය, null pointer dereferences, සත්‍ය ප්‍රවේශයෙන් පසු චෙක්පත් භාවිතය බෆරයට, බෆරය ඉක්මවා යාම, ආරම්භ නොකළ විචල්‍ය භාවිතය.

නව අනුවාදයේ:

  • විශ්ලේෂක හරයට පහත චෙක්පත් එකතු කර ඇත:
    • ක්රියාකාරී ශරීරයේ ආපසු ක්රියාකරු නොමැති වීම;
    • අතිච්ඡාදනය වන දත්ත වාර්තා කරයි, නිර්වචනය නොකළ හැසිරීම තීරණය කරයි;
    • සංසන්දනය කරනු ලබන අගය වර්ගයෙහි අගය නියෝජනයෙන් පිටත ය;
    • පිටපත් ප්‍රශස්ත කිරීම රිටර්න් std සඳහා අදාළ නොවේ ::move(local);
    • විවිධ ප්‍රවාහවල (ප්‍රවාහ) කියවීම සහ ලිවීම සඳහා ගොනුව එකවර විවෘත කළ නොහැක;
  • Unix වේදිකා සඳහා, විවිධ වර්ණවලින් රෝග විනිශ්චය පණිවිඩ පෙන්වීම සඳහා සහය එකතු කරන ලදී;
  • ValueFlow සඳහා සංකේතාත්මක විශ්ලේෂණයක් එක් කරන ලදී. නොදන්නා විචල්‍ය දෙකක් අතර වෙනස ගණනය කිරීමේදී සරල ඩෙල්ටා භාවිතා කරයි;
  • "define" ටෝකන් ලැයිස්තුව සඳහා භාවිතා කරන නීති #ඇතුළත් විය හැක;
  • library ටැගයට දැන් ටැගය අඩංගු විය හැකි අතර, ඒ අනුව std::size, std::empty, std::begin, std::end, වැනි බහාලුම් පිළිගත හැකි නිදහස් ශ්‍රිත. සම්බන්ධක සඳහා යෙල්ඩ් හෝ ක්‍රියාව නියම කළ හැක;
  • library tag හි දැන් අනන්‍ය හිමිකාරිත්වයක් ඇති ස්මාර්ට් පොයින්ටර් සඳහා ටැගයක් අඩංගු විය හැක. මෙම වර්ගයේ ස්මාර්ට් පොයින්ටර් සඳහා එල්ලෙන යොමු කිරීම් පිළිබඳව දැන් අනතුරු ඇඟවීමක් නිකුත් කෙරේ;
  • —cppcheck-build-dir පරාමිතිය සැකසීමේදී ස්ථාවර ගැටළු;
  • htmlreport දැන් කර්තෘ පිළිබඳ තොරතුරු පෙන්විය හැක (git චෝදනාව භාවිතා කරමින්);
  • නියත නොවන නමුත් විය හැකි විචල්‍යයන් පිළිබඳ දීර්ඝ අනතුරු ඇඟවීම්;
  • විශ්ලේෂකයේ සමුච්චිත දෝෂ සහ අඩුපාඩු නිවැරදි කර ඇත.

අතිරේක වශයෙන්, 2012, 1 සහ 2 නීති හැර, සංශෝධන 1.1 සහ සංශෝධන 1.2 ඇතුළුව Misra C 17.3 හි චෙක්පත් සම්පූර්ණයෙන්ම ක්‍රියාත්මක කර ඇත. 1.1 සහ 1.2 චෙක්පත් සම්පාදකයා විසින් සිදු කළ යුතුය. සත්‍යාපනය 17.3 GCC වැනි සම්පාදකයක් මඟින් සිදු කළ හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න