cppcheck 2.6 เวอร์ชันใหม่ออกแล้วและนี่คือข่าวของมัน

การเปิดตัวของ เวอร์ชันของตัววิเคราะห์รหัสคงที่ ซีพีพีเช็ค 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