Cppcheck হল C/C++ কোডের জন্য একটি স্ট্যাটিক বিশ্লেষণ টুল
কিছুদিন আগে Cppcheck 2.11-এর নতুন সংস্করণ প্রকাশের ঘোষণা করা হয়েছে, যাতে ইউজার ইন্টারফেসের উন্নতিসহ নতুন অপশন ও প্যারামিটার সংযোজনের মতো বিভিন্ন সার্বিক উন্নতি সাধন করা হয়েছে।
যারা Cppcheck-এর সাথে পরিচিত নন, তাদের জন্য বলছি, এটি C/C++ অ্যাপ্লিকেশন ডেভেলপারদের জন্য একটি দরকারি টুল। এই টুলগুচ্ছের মাধ্যমে আপনি সহজেই আপনার প্রোগ্রামের অসঙ্গতি, বাফার ওভারফ্লো এবং অন্যান্য সমস্যা পরীক্ষা করতে পারেন।
Cppcheck আপনাকে দ্রুত কোডের পছন্দসই অংশে যেতে এবং এটি সম্পাদনা শুরু করার অনুমতি দেবে, এর জন্য আপনাকে কেবল এটিতে ডাবল ক্লিক করতে হবে, তারপরে এটি নোটপ্যাড দিয়ে খুলবে, আপনি যদি নোটপ্যাড ব্যবহার না করেন তবে আপনি কিছু অ্যাপ্লিকেশন কনফিগার করতে পারেন। এর জন্য কোড খুলুন।
কোড বিশ্লেষণ করার জন্য, আপনি এর নিজস্ব অ্যানালাইজার অথবা Clang-এর কোনো এক্সটার্নাল অ্যানালাইজার ব্যবহার করতে পারেন । এতে ডেবিয়ান প্যাকেজগুলোর সম্মিলিত কোড পর্যালোচনার জন্য স্থানীয় রিসোর্স সরবরাহ করার একটি স্ক্রিপ্টও অন্তর্ভুক্ত রয়েছে।
Cppcheck 2.11 এর প্রধান নতুন বৈশিষ্ট্য
cppcheck 2.11-এর এই নতুন সংস্করণে কমান্ড-লাইন ইন্টারফেসে বেশ কিছু উন্নতি করা হয়েছে, যার মধ্যে "--check-level" নামে একটি নতুন অপশন যোগ করা হয়েছে , যা চেকের বিস্তারিত বিবরণ নির্ধারণ করে। এর ডিফল্ট মান হলো "normal"। আরও পুঙ্খানুপুঙ্খ চেকের জন্য, আপনি মানটি "exhaustive"-এ সেট করতে পারেন।
আরেকটি উল্লেখযোগ্য পরিবর্তন হলো, কিছু কমান্ড-লাইন অপশনের জন্য সেট ভ্যালুর উন্নত নিয়ন্ত্রণ, যেগুলোর জন্য ইন্টিজার ভ্যালু প্রয়োজন হয়। এছাড়াও , 'missingInclude' এবং 'missingIncludeSystem' থেকে বিস্তারিত মেসেজ পাওয়ার জন্য আর "--check-config" চালানোর প্রয়োজন নেই , কারণ ' missingInclude ' সক্রিয় থাকলে নিয়মিত স্ক্যানের সময়ই এই মেসেজগুলো সবসময় পাঠানো হবে ।
এছাড়াও, .cppcheck ফাইলগুলি এখন অপ্রচলিত এবং "Unspecified" প্ল্যাটফর্ম টাইপের সমর্থনের জন্য সংস্করণ ২.১৪ থেকে সরিয়ে ফেলা হবে, তাই এখন এর পরিবর্তে "Unspecified" ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। প্রজেক্ট ফাইল নির্বাচন ডায়ালগ থেকে রিলেটিভ পাথের পরিবর্তে অ্যাবসোলিউট পাথ ব্যবহার করার অপশনটি সরিয়ে ফেলা হয়েছে।
এছাড়াও উল্লেখ্য যে, খালি কন্টেইনারের জন্য pop_back() ভেরিফিকেশন যোগ করা হয়েছে , সেইসাথে STL লাইব্রেরির any_of, all_of ও none_of অ্যালগরিদমগুলোর জন্য লুপের ভেতরের নিয়ন্ত্রণ উন্নত করা হয়েছে এবং কন্ট্রোল ফ্লো অ্যানালাইজারেরও উন্নতি সাধন করা হয়েছে।
এছাড়াও, এটি উল্লেখ করা হয়েছে যে এখন কন্ডিশন ব্যবহার করেও একটি ফাংশনের রিটার্ন ভ্যালু নির্ধারণ করা যাবে, এবং প্যারামিটার বা ভেরিয়েবলটি পয়েন্টার, রেফারেন্স, নাকি লোকাল, তার উপর নির্ভর করে constParameter এবং constVariable চেকগুলোকে ৩টি আইডেন্টিফায়ারে বিভক্ত করা হয়েছে, যাতে নির্দিষ্ট ধরণের মেসেজ আরও সুনির্দিষ্টভাবে দমন করা যায়।
এই নতুন সংস্করণে অন্যান্য উল্লেখযোগ্য পরিবর্তনগুলোর মধ্যে রয়েছে:
- ফাংশন দ্বারা ফিরে পাত্রের মাপ পুনরায় সংজ্ঞায়িত করা;
- তাদের সম্ভাব্য প্রতীকী অর্থ থেকে সম্ভাব্য অর্থ বের করুন;
- ধারক মধ্যে মান স্থাপন পরে উন্নত.
- "missingInclude" এবং "missingIncludeSystem" বার্তাগুলি এখন "–error-exitcode" বিকল্প ব্যবহার করে;
- "-j1" বিকল্পের সাথে একটি প্রকল্প স্ক্যান করার সময়, কোড ফাইলগুলি প্রক্রিয়া না হওয়া পর্যন্ত মার্কআপ ফাইলগুলির প্রক্রিয়াকরণ বিলম্বিত হয়।
অবশেষে, আপনি যদি এই নতুন সংস্করণটি সম্পর্কে আরও জানতে আগ্রহী হন, তাহলে নিচের লিঙ্কে বিস্তারিত তথ্য পেয়ে যাবেন ।
কিভাবে লিনাক্সে cppcheck ইনস্টল করবেন?
যারা তাদের লিনাক্স ডিস্ট্রিবিউশনে cppcheck ইন্সটল করতে সক্ষম হতে আগ্রহী, তারা আমাদের নীচে শেয়ার করা নির্দেশাবলী অনুসরণ করতে পারেন।
আপনি যদি ডেবিয়ান অথবা এর উপর ভিত্তি করে বা এটি থেকে উদ্ভূত অন্য কোনো ডিস্ট্রিবিউশন, যেমন ডিপিন বা উবুন্টু- এর ব্যবহারকারী হন, তাহলে আপনি নিম্নলিখিত কমান্ডটি টাইপ করে সরাসরি টার্মিনাল থেকে ইনস্টলেশনটি সম্পন্ন করতে পারেন:
sudo apt-get install cppcheck
এখন, যারা ফেডোরা এবং এর ডেরিভেটিভগুলো ব্যবহার করেন, তারা নিম্নলিখিত কমান্ডটি টাইপ করে ইনস্টলেশন সম্পন্ন করতে পারেন:
sudo yum instalar cppcheck
অথবা যারা আর্চ লিনাক্স বা এর অন্য কোনো ডেরিভেটিভ ব্যবহার করেন , তারা নিচের কমান্ডটি দিয়ে ইনস্টল করতে পারেন:
sudo pacman -S cppcheck