นี่คือปลั๊กอินการวิเคราะห์โค้ด C/C ++ สำหรับ VSCODE ที่แสดงรายงานข้อผิดพลาดที่ตรวจพบโดยเครื่องวิเคราะห์ Clang Static และ Clang Tidy Tidy โดยใช้ CodeChecker เป็นแบ็กเอนด์

PATHcompile_commands.jsonF9 / Shift-F9 โดยค่าเริ่มต้น) 


CodeChecker ทำงานโดยการอ่านฐานข้อมูลการรวบรวมที่สร้างขึ้นมักเรียกว่า compile_commands.json และดำเนินการวิเคราะห์เฉพาะตามนั้น
CMake มีการสนับสนุนในตัวสำหรับการสร้างฐานข้อมูลการรวบรวม ตั้งค่าตัวแปรสภาพแวดล้อม CMAKE_EXPORT_COMPILE_COMMANDS=ON และฐานข้อมูลการรวบรวมควรอยู่ในโฟลเดอร์บิลด์ของคุณ หากคุณใช้ส่วนขยาย CMake Tools สำหรับรหัส VS คุณสามารถเพิ่มการตั้งค่าสถานะนี้ลงในการตั้งค่าส่วนขยายภายใต้ Cmake > Build Environment
make และระบบสร้างอื่น ๆ ไม่มีการสนับสนุนในตัวสำหรับการสร้างฐานข้อมูลการรวบรวม แต่ CodeChecker สามารถสร้างหนึ่งตามคำสั่ง build ในการสร้างหนึ่งคุณสามารถใช้คำสั่ง CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json
ในการทำให้กระบวนการเป็นไปโดยอัตโนมัติส่วนขยายจะให้วิธีการเรียกใช้คำสั่ง CodeChecker log โดยอัตโนมัติ ขั้นแรกในการตั้งค่าส่วนขยายที่ตั้งค่า CodeChecker > Executor > Log build command จากนั้นใช้งานรหัส VS หรือรหัสคำสั่ง VS CodeChecker: Run CodeChecker Log เพื่อดำเนินการวิเคราะห์ นอกจากนี้คุณยังสามารถเรียกใช้ CodeChecker: Preview CodeChecker log in terminal เพื่อให้มีการควบคุมที่ดีกว่าพารามิเตอร์ที่ส่งผ่านไปยัง CodeChecker
ส่วนขยายใช้ CodeChecker เวอร์ชัน 6.18.2 หรือใหม่กว่า หากเส้นทางการติดตั้งของคุณแตกต่างกันหรือ CodeChecker ไม่ได้อยู่ในตัวแปรสภาพแวดล้อม PATH เส้นทางไปยังมันสามารถตั้งค่าด้วยตนเองภายใต้ Preferences > Settings > Extensions > CodeChecker > Executable path
ส่วนขยายสามารถเรียกใช้การวิเคราะห์ CodeChecker ในโครงการของคุณไม่ว่าจะเป็นการบันทึกไฟล์หรือเมื่อใช้หนึ่งใน CodeChecker: Analyze คำสั่ง คุณสามารถหยุดการวิเคราะห์ได้โดยคลิกที่ปุ่ม ยกเลิก ในการแจ้งเตือนของ CodeChecker - ผลลัพธ์บางส่วนจะถูกบันทึกโดยอัตโนมัติ
การวิเคราะห์สามารถกำหนดค่าได้อย่างสมบูรณ์และบรรทัดคำสั่ง codeChecker ผลลัพธ์สามารถดูตัวอย่างด้วย CodeChecker: Show full command line (สำหรับอาร์กิวเมนต์ที่รองรับเรียกใช้ CodeChecker analyze --help ) การตั้งค่าสำหรับพื้นที่ทำงานปัจจุบันสามารถตั้งค่าบนแท็บ Workspace ในการตั้งค่า การวิเคราะห์อัตโนมัติเกี่ยวกับการประหยัดสามารถกำหนดค่าได้เช่นกัน
ข้อมูลรายละเอียดเกี่ยวกับตัวเลือกการกำหนดค่าสามารถดูได้ภายใต้การตั้งค่า
ส่วนขยายมีคำสั่งต่อไปนี้:
| สั่งการ | คำอธิบาย |
|---|---|
CodeChecker: Analyze current file | วิเคราะห์ไฟล์ต้นฉบับที่เปิดอยู่ในปัจจุบันโดยใช้ CodeChecker สามารถเรียกได้โดยคลิกที่ปุ่ม Re-analyze current file ในแผงด้านข้างของ CodeCheckerมีประโยชน์เมื่อการ Run On Save จะถูกปิดในการตั้งค่าปลั๊กอิน |
CodeChecker: Analyze selected files... | วิเคราะห์ไฟล์ที่ผู้ใช้เลือกโดยใช้ CodeChecker ยอมรับหลายไฟล์เป็นอินพุต |
CodeChecker: Analyze entire project | วิเคราะห์โครงการทั้งหมดโดยใช้ CodeChecker ยังสามารถเรียกได้โดยคลิกที่ปุ่ม Re-analyze entire project ในแผงด้านข้างของ CodeCheckerคำเตือน: การวิเคราะห์เต็มรูปแบบอาจใช้เวลาไม่กี่นาทีหรือแม้กระทั่งชั่วโมงในโครงการขนาดใหญ่ |
CodeChecker: Stop running CodeChecker instance | หยุดการวิเคราะห์ที่กำลังทำงานอยู่ในปัจจุบัน ผลลัพธ์บางส่วนจะถูกบันทึกและอัปเดต |
CodeChecker: Run CodeChecker log | อัปเดตฐานข้อมูลการรวบรวมโดยการสร้างโครงการปัจจุบัน ตัวแปรที่มีคำสั่ง build ที่ผู้ใช้กำหนดเองก็พร้อมใช้งาน |
CodeChecker: Preview CodeChecker log in terminal | คำสั่งบันทึก CodeChecker ปัจจุบันจะถูกวางลงในหน้าต่างเทอร์มินัลใหม่ซึ่งสามารถแก้ไขได้ก่อนที่จะเรียกใช้ |
CodeChecker: Show database setup dialog | แสดงกล่องโต้ตอบเพื่อเลือกพา ธ ไปยังฐานข้อมูลการรวบรวมที่มีอยู่หรือเพื่อสร้างใหม่ |
CodeChecker: Next reproduction stepCodeChecker: Previous reproduction step | เคลื่อนที่ระหว่างขั้นตอนการทำซ้ำที่แสดง นอกจากนี้คุณยังสามารถนำทางโดยตรงไปยังขั้นตอนของรายงานผ่านแผงด้านข้างของ CodeChecker KeyBinds เริ่มต้น: Ctrl-F7 , Ctrl-Shift-F7 ตามลำดับ |
CodeChecker: Show full CodeChecker analyze command line | แสดงบรรทัดคำสั่ง CodeChecker แบบเต็มที่ใช้ในการวิเคราะห์ไฟล์ มีประโยชน์หากคุณต้องการตรวจสอบตัวเลือกของตัววิเคราะห์ก่อนที่จะทำงานหรือหากคุณต้องการเรียกใช้การวิเคราะห์ด้วยตนเอง |
CodeChecker: Show Output | มุ่งเน้นผลลัพธ์ของ CodeChecker ในตัวแก้ไข บันทึกของปลั๊กอินรวมถึงเอาต์พุตของการรัน codeChecker ก่อนหน้านี้จะปรากฏขึ้นที่นี่ |
CodeChecker: Reload metadata | โหลดไฟล์ metadata.json ของ CodeChecker ใหม่ สามารถเรียกได้โดยคลิกที่ปุ่ม Reload CodeChecker metadata บนแผงด้านข้างของ CodeChecker |
คำสั่งวิเคราะห์ยังมีอยู่ในรูปแบบงาน:
| งาน | คำสั่งเทียบเท่า |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...ไฟล์ที่เลือกแสดงอยู่ในอาร์เรย์ selectedFiles โดยใช้เส้นทางเต็ม |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
เนื่องจากเส้นทางที่เกี่ยวข้องกับ CodeChecker นั้นแตกต่างกันอย่างมากระหว่างระบบการตั้งค่าต่อไปนี้มีให้สามารถเข้าถึงได้ผ่านเมนูการตั้งค่า:
| ชื่อ | คำอธิบาย |
|---|---|
| CodeChecker> แบ็กเอนด์> โฟลเดอร์เอาต์พุต (ค่าเริ่มต้น: ${workspaceFolder}/.codechecker ) | โฟลเดอร์เอาต์พุตที่เก็บไฟล์การวิเคราะห์ codeChecker |
| CodeChecker> backend> พา ธ ฐานข้อมูลการรวบรวม (ค่าเริ่มต้น: (ว่าง) ) | พา ธ ไปยังฐานข้อมูลการรวบรวมที่กำหนดเองในกรณีของระบบบิลด์ที่กำหนดเอง โต้ตอบการตั้งค่าฐานข้อมูลตั้งค่าพา ธ สำหรับพื้นที่ทำงานปัจจุบันเท่านั้น เว้นว่างไว้เพื่อใช้ฐานข้อมูลในโฟลเดอร์เอาท์พุทของ CodeChecker หรือใช้การตรวจสอบอัตโนมัติของ CodeChecker สำหรับพื้นที่ทำงานหลายรูต |
| CodeChecker> editor> ความรุนแรงของข้อผิดพลาดที่กำหนดเอง (ค่าเริ่มต้น: null ) | ควบคุมวิธีการแสดงข้อผิดพลาดในตัวแก้ไขขึ้นอยู่กับความรุนแรงของมัน ข้อบกพร่องสามารถแสดงเป็น 'ข้อผิดพลาด', 'คำเตือน', 'ข้อมูล' หรือ 'คำใบ้' โดยค่าเริ่มต้นทุกอย่างยกเว้นความรุนแรงของสไตล์ 'สไตล์' จะแสดงเป็นข้อผิดพลาด กำหนดค่าเป็นอาร์เรย์เช่น { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CodeChecker> editor> แสดงกล่องโต้ตอบฐานข้อมูล (ค่าเริ่มต้น: on ) | ควบคุมกล่องโต้ตอบเมื่อเปิดพื้นที่ทำงานโดยไม่มีฐานข้อมูลการรวบรวม |
| CodeChecker> editor> เปิดใช้งาน codelens (ค่าเริ่มต้น: on ) | เปิดใช้งาน Codelens สำหรับการแสดงเส้นทางการทำซ้ำในตัวแก้ไข |
| CodeChecker> Executor> เปิดใช้งานการแจ้งเตือน (ค่าเริ่มต้น: on ) | เปิดใช้งานการแจ้งเตือนขนมปังปิ้งที่เกี่ยวข้องกับ CodeChecker |
| CodeChecker> Executor> Path ที่ใช้งานได้ (ค่าเริ่มต้น: CodeChecker ) | เส้นทางไปยัง CodeChecker ปฏิบัติการได้ สามารถใช้งานได้ในตัวแปรสภาพแวดล้อม PATH หรือเส้นทางที่แน่นอนไปยังหนึ่ง |
| CodeChecker> Executor> การวิเคราะห์หมดเวลา (ค่าเริ่มต้น: 60 ) | การหมดเวลา (เป็นวินาที) สำหรับการวิเคราะห์แต่ละครั้งที่ดำเนินการโดยคำสั่ง codeChecker Analyze - ตั้งค่าเป็น 0 เพื่อปิดการใช้งานการหมดเวลา |
| CodeChecker> Executor> จำนวนเธรด (ค่าเริ่มต้น: (ว่าง) ) | จำนวนเธรดของ CodeChecker - ว่างเปล่าเพื่อใช้เธรดทั้งหมด |
| CodeChecker> Executor> อาร์กิวเมนต์ (ค่าเริ่มต้น: (ว่าง) ) | อาร์กิวเมนต์เพิ่มเติมเพื่อ CodeChecker analyze ตัวอย่างเช่นหากคุณต้องการใช้ไฟล์กำหนดค่าสำหรับ CodeChecker Pass '-config <config.json>' สำหรับอาร์กิวเมนต์ที่รองรับ Run CodeChecker analyze --helpหมายเหตุ: บรรทัดคำสั่งที่ได้สามารถดูตัวอย่างด้วย CodeChecker: Show full CodeChecker analyze command line |
| codeChecker> executor> log build command (ค่าเริ่มต้น: make ) | คำสั่ง build เริ่มต้นที่ใช้เมื่อเรียกใช้ CodeChecker log ผ่านคำสั่งหรืองาน |
| CodeChecker> Executor> บันทึกอาร์กิวเมนต์ (ค่าเริ่มต้น: (ว่าง) ) | อาร์กิวเมนต์เพิ่มเติมเกี่ยวกับ CodeChecker logหมายเหตุ: บรรทัดคำสั่งผลลัพธ์สามารถดูตัวอย่างด้วย CodeChecker: Preview CodeChecker log in terminal |
| CodeChecker> Executor> Run on Save (ค่าเริ่มต้น: on ) | ควบคุม CodeChecker อัตโนมัติในการบันทึกไฟล์ |
หมายเหตุ : หากคุณติดตั้งส่วนขยายนี้จาก Marketplace แล้วให้ถอนการติดตั้งก่อนเพื่อป้องกันความขัดแย้งกับการสร้างของคุณเอง
ส่วนขยายนี้ใช้ node.js (V12+) และเส้นด้าย (V2+) ส่วนขยายรหัส VS ที่แนะนำคือ ESLINT และ TypeScript+WebPack Matcher ปัญหาปัญหา
ในการสร้างและเรียกใช้ส่วนขยายให้ทำสิ่งต่อไปนี้:
yarn install --immutable สามารถติดตั้งได้code . ) ในการเรียกใช้การทดสอบให้เลือกการทดสอบส่วนขยายเป็นการกำหนดค่าการดีบักที่ใช้งานอยู่หรือเรียกใช้ yarn run test
ส่วนขยายจะถูกเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 ซึ่งเป็นใบอนุญาตเดียวกับ CodeChecker