Cppcheck รองรับการตรวจสอบแบบคงที่ที่หลากหลายซึ่งตัวคอมไพเลอร์อาจไม่ครอบคลุมถึง การตรวจสอบเหล่านี้เป็นการตรวจสอบการวิเคราะห์แบบคงที่ที่สามารถทำได้ในระดับซอร์สโค้ด โปรแกรมนี้มุ่งเน้นไปที่การตรวจสอบการวิเคราะห์แบบคงที่ที่เข้มงวดมากกว่าการวิเคราะห์พฤติกรรม
การตรวจสอบบางส่วนที่รองรับ ได้แก่:
- การตรวจสอบตัวแปรอัตโนมัติ
- การตรวจสอบขอบเขตสำหรับการโอเวอร์รันอาร์เรย์
- การตรวจสอบคลาส (เช่น ฟังก์ชันที่ไม่ได้ใช้ การเริ่มต้นตัวแปร และการทำสำเนาหน่วยความจำ)
- การใช้งานฟังก์ชันที่เลิกใช้แล้วหรือแทนที่ตาม Open Group[3]
- การตรวจสอบความปลอดภัยของข้อยกเว้น เช่น การใช้การจัดสรรหน่วยความจำและการตรวจสอบตัวทำลาย
- หน่วยความจำรั่ว เช่น เนื่องจากสูญเสียขอบเขตโดยไม่มีการจัดสรรคืน
- การรั่วไหลของทรัพยากร เช่น เนื่องจากลืมปิดตัวจัดการไฟล์
- การใช้ฟังก์ชันและสำนวนไลบรารีเทมเพลตมาตรฐานไม่ถูกต้อง
- การกำจัดโค้ดที่ไม่ทำงานโดยใช้ตัวเลือกฟังก์ชันที่ไม่ได้ใช้
- ข้อผิดพลาดด้านรูปแบบและประสิทธิภาพเบ็ดเตล็ด
คุณสมบัติของ Cppcheck:
- การวิเคราะห์โค้ดที่ไม่ซ้ำใครที่ตรวจจับข้อบกพร่องประเภทต่างๆ ในโค้ดของคุณ
- มีทั้งอินเทอร์เฟซบรรทัดคำสั่งและอินเทอร์เฟซผู้ใช้แบบกราฟิก
- Cppcheck ให้ความสำคัญกับการตรวจจับพฤติกรรมที่ไม่ได้กำหนด