การเปิดตัวของ เวอร์ชันของตัววิเคราะห์รหัสคงที่ ซีพีพีเช็ค 2.6ที่ ช่วยในการตรวจจับข้อผิดพลาดประเภทต่างๆในรหัส C และ C ++แม้ว่าจะใช้ไวยากรณ์ที่ไม่ได้มาตรฐานตามแบบฉบับของระบบฝังตัว
มีชุดของปลั๊กอินซึ่งรวม cppcheck กับการพัฒนาต่างๆ การผสานรวมอย่างต่อเนื่องและการทดสอบระบบ ตลอดจนคุณลักษณะต่างๆ เช่น การตรวจสอบความสอดคล้องของโค้ดกับรูปแบบการเข้ารหัส
เพื่อวิเคราะห์รหัส คุณสามารถใช้ทั้ง parser ของคุณเองและตัวแยกวิเคราะห์ Clang ภายนอก. นอกจากนี้ยังมีสคริปต์ donate-cpu.py เพื่อให้ทรัพยากรในเครื่องสำหรับการตรวจสอบโค้ดการทำงานร่วมกันสำหรับแพ็คเกจ Debian
พัฒนาการของcppcheck มุ่งเน้นไปที่การระบุปัญหาที่เกี่ยวข้องกับพฤติกรรมที่ไม่ได้กำหนด และการใช้โครงสร้างที่เป็นอันตรายจากมุมมองด้านความปลอดภัย
เป้าหมายก็คือเพื่อลดผลบวกลวง. ท่ามกลางปัญหาที่ระบุ: ตัวชี้ไปยังวัตถุที่ไม่มีอยู่จริง, การหารด้วยศูนย์, การล้นของจำนวนเต็ม, การดำเนินการเปลี่ยนบิตที่ไม่ถูกต้อง, การแปลงที่ไม่ถูกต้อง, ปัญหาหน่วยความจำ, การใช้ STL อย่างไม่ถูกต้อง, การยกเลิกการอ้างอิงของพอยน์เตอร์ null, การใช้การตรวจสอบหลังจากการเข้าถึงจริงกับบัฟเฟอร์ ล้นขีดจำกัดบัฟเฟอร์โดยใช้ตัวแปรที่ยังไม่ได้กำหนดค่าเริ่มต้น
คุณสมบัติใหม่หลักของ cppcheck 2.6
ในเวอร์ชันใหม่นี้ se ได้เพิ่มการตรวจสอบต่างๆ ให้กับเคอร์เนลของ parserซึ่งการตรวจสอบการไม่มีการประกาศส่งคืนในเนื้อหาของฟังก์ชันมีความโดดเด่น เช่นเดียวกับการบันทึกข้อมูลที่ทับซ้อนกัน คำจำกัดความพฤติกรรมที่ไม่ได้กำหนด และการตรวจสอบสำหรับค่าที่ถูกเปรียบเทียบนั้นอยู่นอกช่วงของการแสดง ของมูลค่าของประเภท
ความแปลกใหม่ที่โดดเด่นอีกอย่างคือ การเพิ่มประสิทธิภาพการคัดลอกใช้ไม่ได้กับการส่งคืน std :: move (ในเครื่อง);เพิ่มการสนับสนุนสำหรับการแสดงข้อความวินิจฉัยในสีต่างๆ สำหรับแพลตฟอร์ม Unix และแท็กไลบรารี ตอนนี้สามารถมีแท็ก สำหรับตัวชี้อัจฉริยะที่มีคุณสมบัติเฉพาะตัว ขณะนี้มีการออกคำเตือนลิงก์ Dangling สำหรับพอยน์เตอร์อัจฉริยะประเภทนี้
นอกจากนี้ การควบคุม Misra C 2012 ได้รับการดำเนินการอย่างสมบูรณ์ รวมถึงการแก้ไข 1 และการแก้ไข 2 ยกเว้นกฎ 1.1, 1.2 และ 17.3 คอมไพเลอร์ควรทำการตรวจสอบ 1.1 และ 1.2 คอมไพเลอร์เช่น GCC สามารถตรวจสอบได้ 17.3
จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น ของเวอร์ชันใหม่นี้:
- ไม่สามารถเปิดไฟล์พร้อมกันเพื่ออ่านและเขียนในสตรีมต่างๆ
- เพิ่มการวิเคราะห์เชิงสัญลักษณ์สำหรับ ValueFlow เดลต้าอย่างง่ายถูกใช้เมื่อคำนวณความแตกต่างระหว่างสองตัวแปรที่ไม่รู้จัก
- กฎที่ใช้สำหรับรายการโทเค็น "กำหนด" สามารถจับคู่ #include;
- แท็กห้องสมุด ตอนนี้สามารถมีแท็ก และฟังก์ชั่นฟรีที่สามารถรับคอนเทนเนอร์เช่น std :: size, std :: empty, std :: begin, std :: end เป็นต้น คุณสามารถระบุการตะโกนหรือการกระทำสำหรับคอนเทนเนอร์
- แก้ไขปัญหาในการจัดการพารามิเตอร์ –cppcheck-build-dir
htmlreport สามารถพิมพ์ข้อมูลเกี่ยวกับผู้เขียนได้แล้ว (โดยใช้ gitตำหนิ); - การออกคำเตือนเพิ่มเติมเกี่ยวกับตัวแปรที่ไม่คงที่แต่สามารถกลายเป็นค่าคงที่ได้
- ข้อบกพร่องและข้อบกพร่องของตัววิเคราะห์ที่สะสมได้รับการแก้ไขแล้ว
สุดท้ายนี้ หากคุณสนใจทราบข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันใหม่นี้ ปรึกษาได้ รายละเอียดตามลิงค์ต่อไปนี้
จะติดตั้ง cppcheck บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจจะสามารถติดตั้ง cppcheck บนลีนุกซ์ลีนุกซ์ พวกเขาสามารถทำตามคำแนะนำที่เราแบ่งปันด้านล่าง
หากคุณเป็นผู้ใช้ Debian หรือการแจกจ่ายอื่น ๆ ที่มีพื้นฐานมาจากหรือมาจากมัน เช่น Deepin หรือ Ubuntu คุณสามารถติดตั้งได้โดยตรงจากเทอร์มินัลโดยพิมพ์คำสั่งต่อไปนี้:
sudo apt-get install cppcheck
ตอนนี้สำหรับผู้ที่เป็นผู้ใช้ Fedora และผู้ที่ได้รับจากมัน พวกเขาสามารถดำเนินการติดตั้งโดยพิมพ์คำสั่งต่อไปนี้:
sudo yum instalar cppcheck
หรือสำหรับผู้ที่เป็นผู้ใช้ Arch Linux หรืออนุพันธ์อื่น ๆ สามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้:
sudo pacman -S cppcheck