Cppcheck เป็นเครื่องมือวิเคราะห์แบบคงที่สำหรับโค้ด C/C++
เมื่อไม่กี่วันที่ผ่านมา มีการประกาศเปิดตัว Cppcheck เวอร์ชันใหม่ 2.11ซึ่งมีการปรับปรุงต่างๆ มากมาย รวมถึงการปรับปรุงส่วนติดต่อผู้ใช้ ตลอดจนการเพิ่มตัวเลือกและพารามิเตอร์ใหม่ๆ เป็นต้น
สำหรับผู้ที่ไม่คุ้นเคยกับ Cppcheck มันเป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนาแอปพลิเคชัน C/C++ชุดเครื่องมือนี้ช่วยให้คุณตรวจสอบโปรแกรมของคุณเพื่อหาความไม่สอดคล้องกัน บัฟเฟอร์โอเวอร์โฟลว์ และปัญหาอื่นๆ ได้อย่างง่ายดาย
Cppcheck จะช่วยให้คุณไปที่โค้ดที่ต้องการอย่างรวดเร็วและเริ่มแก้ไขได้ เพียงดับเบิลคลิกที่โค้ดนั้น หลังจากนั้นโค้ดจะเปิดขึ้นพร้อมกับแผ่นจดบันทึก หากคุณไม่ได้ใช้แผ่นจดบันทึก คุณสามารถกำหนดค่าบางแอปพลิเคชันได้ สำหรับมัน เปิดรหัส
ในการวิเคราะห์โค้ดคุณสามารถใช้เครื่องมือวิเคราะห์ของตัวมันเองหรือเครื่องมือวิเคราะห์ภายนอกจาก Clang ก็ได้นอกจากนี้ยังมีสคริปต์ที่ให้ทรัพยากรในพื้นที่สำหรับการตรวจสอบโค้ดร่วมกันของแพ็กเกจ Debian ด้วย
คุณสมบัติใหม่หลักของ cppcheck 2.11
cppcheck เวอร์ชันใหม่ 2.11 นี้มีการปรับปรุงส่วนติดต่อผู้ใช้แบบบรรทัดคำสั่งรวมถึงการเพิ่มตัวเลือกใหม่ "--check-level"ซึ่งใช้กำหนดระดับรายละเอียดของการตรวจสอบ ค่าเริ่มต้นคือ "normal" หากต้องการตรวจสอบอย่างละเอียดมากขึ้น สามารถตั้งค่าเป็น"exhaustive" ได้
การเปลี่ยนแปลงที่สำคัญอีกประการหนึ่งคือ การควบคุมการตั้งค่าสำหรับตัวเลือกบรรทัดคำสั่งบางอย่างที่ต้องการค่าจำนวนเต็มที่ดีขึ้น และไม่จำเป็นต้องเรียกใช้ "--check-config"เพื่อรับข้อความโดยละเอียดจาก"missingInclude" และ "missingIncludeSystem" อีกต่อไป เนื่องจากข้อความเหล่านั้นจะแสดงขึ้นในการสแกนปกติเสมอหากเปิดใช้งาน " missingInclude "
นอกจากนี้ไฟล์ .cppcheck ถือว่าล้าสมัยแล้วและจะถูกลบออกในเวอร์ชัน 2.14 เพื่อรองรับแพลตฟอร์มประเภท "ไม่ระบุ" ดังนั้นจึงแนะนำให้ใช้ "ไม่ระบุ" แทนตัวเลือกในการแทนที่พาธสัมพัทธ์ด้วยพาธสัมบูรณ์ในกล่องโต้ตอบการเลือกไฟล์โปรเจ็กต์ถูกลบออกแล้ว
นอกจากนี้ ยังมีการเพิ่มการตรวจสอบ pop_back() สำหรับคอนเทนเนอร์ที่ว่างเปล่ารวมถึงการควบคุมที่ดีขึ้นในลูปสำหรับอัลกอริธึมไลบรารี STL any_of, all_of และ none_ofและการปรับปรุงตัววิเคราะห์การไหลของควบคุมด้วย
นอกจากนี้ ยังมีการกล่าวถึงว่าขณะนี้สามารถกำหนดค่าส่งคืนของฟังก์ชันได้แล้ว แม้ว่าจะใช้เงื่อนไขก็ตาม และ การตรวจสอบ constParameter และ constVariableได้ถูกแยกออกเป็น 3 ตัวระบุ ขึ้นอยู่กับว่าพารามิเตอร์หรือตัวแปรนั้นเป็นตัวชี้ ตัวอ้างอิง หรือตัวแปรภายใน เพื่อให้สามารถระงับข้อความบางประเภทได้อย่างแม่นยำยิ่งขึ้น
การเปลี่ยนแปลงที่สำคัญอื่นๆในเวอร์ชันใหม่นี้ ได้แก่:
- การกำหนดขนาดของคอนเทนเนอร์ที่ส่งกลับโดยฟังก์ชันใหม่
- อนุมานความหมายที่เป็นไปได้จากความหมายเชิงสัญลักษณ์ที่เป็นไปได้
- ปรับปรุงหลังจากใส่ค่าในคอนเทนเนอร์
- ตอนนี้ข้อความ "missingInclude" และ "missingIncludeSystem" จะใช้ตัวเลือก "–error-exitcode"
- เมื่อสแกนโปรเจ็กต์ด้วยตัวเลือก "-j1" การประมวลผลไฟล์มาร์กอัปจะล่าช้าจนกว่าไฟล์โค้ดจะได้รับการประมวลผล
สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับเวอร์ชันใหม่นี้ คุณสามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้
จะติดตั้ง cppcheck บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจจะสามารถติดตั้ง cppcheck บนลีนุกซ์ลีนุกซ์ พวกเขาสามารถทำตามคำแนะนำที่เราแบ่งปันด้านล่าง
หากคุณเป็นผู้ใช้ Debian หรือผู้ใช้ระบบปฏิบัติการอื่น ๆ ที่พัฒนาต่อยอดมาจาก Debianเช่น Deepin หรือ Ubuntu คุณสามารถทำการติดตั้งได้โดยตรงจากเทอร์มินัลโดยพิมพ์คำสั่งต่อไปนี้:
sudo apt-get install cppcheck
สำหรับผู้ใช้งานFedora และระบบปฏิบัติการที่พัฒนาต่อยอดจาก Fedoraสามารถทำการติดตั้งได้โดยพิมพ์คำสั่งต่อไปนี้:
sudo yum instalar cppcheck
หรือสำหรับผู้ใช้งาน Arch Linux หรือระบบปฏิบัติการอื่นๆ ที่พัฒนาต่อยอดจาก Arch Linuxคุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:
sudo pacman -S cppcheck