Bagikan melalui


Mulai cepat: Analisis kode untuk C/C++

Anda dapat meningkatkan kualitas aplikasi Anda dengan menjalankan analisis kode secara teratur pada kode C atau C++. Analisis kode dapat membantu Anda menemukan masalah umum dan pelanggaran praktik pemrograman yang baik. Dan, menemukan cacat yang sulit ditemukan melalui pengujian. Peringatannya berbeda dari kesalahan dan peringatan kompilator: Ini mencari pola kode tertentu yang diketahui menyebabkan masalah. Artinya, kode yang valid, tetapi masih dapat membuat masalah, baik untuk Anda atau untuk orang lain yang menggunakan kode Anda.

Mengonfigurasi seperangkat aturan untuk proyek

  1. Di Penjelajah Solusi, buka menu pintasan untuk nama proyek lalu pilih Properti.

  2. Secara opsional, dalam daftar Konfigurasi dan Platform , pilih konfigurasi build dan platform target.

  3. Untuk menjalankan analisis kode setiap kali proyek dibuat menggunakan konfigurasi yang dipilih, pilih kotak centang Aktifkan Analisis Kode pada Build . Anda juga dapat menjalankan analisis kode secara manual dengan membuka menu Analisis lalu memilih Jalankan Analisis Kode pada ProjectName atau Jalankan Analisis Kode pada File.

  4. Pilih seperangkat aturan yang ingin Anda gunakan atau buat seperangkat aturan kustom. Jika menggunakan LLVM/clang-cl, lihat Menggunakan Clang-Tidy di Visual Studio untuk mengonfigurasi opsi analisis Clang-Tidy.

Seperangkat aturan C/C++ standar

Visual Studio menyertakan sekumpulan aturan standar ini untuk kode asli:

Seperangkat Aturan Deskripsi
C++ Aturan Aritmatika Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan yang terkait dengan operasi aritmatika dari Pedoman Inti C++.
Aturan Batas Pemeriksaan Inti C++ Aturan ini memberlakukan profil Batas pedoman inti C++.
C++ Aturan Kelas Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan yang terkait dengan kelas dari Pedoman Inti C++.
C++ Aturan Konkurensi Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan yang terkait dengan konkurensi dari Pedoman Inti C++.
C++ Aturan Kontras Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan terkait const dari Pedoman Inti C++.
C++ Aturan Deklarasi Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan yang terkait dengan deklarasi dari Pedoman Inti C++.
C++ Aturan Enum Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan terkait enum dari Pedoman Inti C++.
C++ Aturan Eksperimental Pemeriksaan Inti Aturan ini mengumpulkan beberapa pemeriksaan eksperimental. Akhirnya, kami berharap pemeriksaan ini dipindahkan ke set aturan lain atau dihapus sepenuhnya.
C++ Aturan Fungsi Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan yang terkait dengan fungsi dari Pedoman Inti C++.
Aturan GSL Pemeriksaan Inti C++ Aturan ini memberlakukan pemeriksaan yang terkait dengan Pustaka Dukungan Pedoman dari Pedoman Inti C++.
C++ Aturan Masa Pakai Pemeriksaan Inti Aturan ini memberlakukan profil Seumur Hidup Pedoman Inti C++.
C++ Aturan Penunjuk Pemilik Pemeriksaan Inti Aturan ini memberlakukan pemeriksaan manajemen sumber daya yang terkait dengan owner<T> dari Pedoman Inti C++.
C++ Inti Periksa Aturan Penunjuk Mentah Aturan ini memberlakukan pemeriksaan manajemen sumber daya yang terkait dengan pointer mentah dari Pedoman Inti C++.
Aturan Pemeriksaan Inti C++ Aturan ini memberlakukan subset pemeriksaan dari Panduan Inti C++. Gunakan seperangkat aturan ini untuk menyertakan semua aturan C++ Core Check kecuali aturan Enum dan Experimental.
C++ Core Check Shared Pointer Rules Aturan ini memberlakukan pemeriksaan manajemen sumber daya yang terkait dengan jenis dengan semantik pointer bersama dari Pedoman Inti C++.
C++ Core Periksa Aturan STL Aturan ini memberlakukan pemeriksaan yang terkait dengan Pustaka Standar C++ dari Pedoman Inti C++.
Aturan Gaya Pemeriksaan Inti C++ Aturan ini memberlakukan pemeriksaan yang terkait dengan penggunaan ekspresi dan pernyataan dari Pedoman Inti C++.
C++ Aturan Jenis Pemeriksaan Inti Aturan ini memberlakukan profil Jenis Pedoman Inti C++.
C++ Core Check Aturan Pointer Unik Aturan ini memberlakukan pemeriksaan manajemen sumber daya yang terkait dengan jenis dengan semantik pointer unik dari Pedoman Inti C++.
Aturan Pemeriksaan Konkurensi Aturan ini memberlakukan serangkaian pemeriksaan pola konkurensi Win32 di C++.
Aturan Konkurensi Menambahkan aturan konkurensi dari C++ Pedoman Inti ke Aturan Pemeriksaan Konkurensi.
Aturan Minimum Asli Microsoft Aturan ini berfokus pada masalah paling penting dalam kode asli Anda, termasuk potensi lubang keamanan dan crash aplikasi. Sebaiknya sertakan seperangkat aturan ini dalam seperangkat aturan kustom apa pun yang Anda buat untuk proyek asli Anda.
Aturan yang Direkomendasikan Microsoft Native Aturan ini berfokus pada masalah paling kritis dan umum dalam kode asli Anda. Masalah ini termasuk potensi lubang keamanan dan crash aplikasi. Sebaiknya sertakan seperangkat aturan ini dalam seperangkat aturan kustom apa pun yang Anda buat untuk proyek asli Anda. Set aturan ini dirancang untuk bekerja dengan edisi Visual Studio Professional dan yang lebih tinggi. Ini termasuk semua aturan dalam Aturan Minimum Asli Microsoft.

Visual Studio menyertakan sekumpulan aturan standar ini untuk kode terkelola:

Seperangkat Aturan Deskripsi
Aturan Kebenaran Dasar Microsoft Aturan ini berfokus pada kesalahan logika dan kesalahan umum yang dilakukan dalam penggunaan API kerangka kerja. Sertakan seperangkat aturan ini untuk memperluas daftar peringatan yang dilaporkan oleh aturan minimum yang direkomendasikan.
Aturan Pedoman Desain Dasar Microsoft Aturan ini berfokus pada penerapan praktik terbaik untuk membuat kode Anda mudah dipahami dan digunakan. Sertakan seperangkat aturan ini jika proyek Anda menyertakan kode pustaka atau jika Anda ingin menerapkan praktik terbaik untuk kode yang mudah dipertahankan.
Aturan Kebenaran Yang Diperluas Microsoft Aturan ini diperluas pada aturan kebenaran dasar untuk memaksimalkan logika yang dilaporkan dan kesalahan penggunaan kerangka kerja. Penekanan ekstra ditempatkan pada skenario tertentu seperti interop COM dan aplikasi seluler. Pertimbangkan untuk menyertakan seperangkat aturan ini jika salah satu skenario ini berlaku untuk proyek Anda atau untuk menemukan lebih banyak masalah dalam proyek Anda.
Aturan Pedoman Desain Yang Diperluas Microsoft Aturan ini diperluas pada aturan pedoman desain dasar untuk memaksimalkan masalah kegunaan dan pemeliharaan yang dilaporkan. Penekanan ekstra ditempatkan pada pedoman penamaan. Pertimbangkan untuk menyertakan seperangkat aturan ini jika proyek Anda menyertakan kode pustaka atau jika Anda ingin menerapkan standar tertinggi untuk menulis kode yang dapat dipertahankan.
Aturan Globalisasi Microsoft Aturan ini berfokus pada masalah yang mencegah data dalam aplikasi Anda ditampilkan dengan benar saat digunakan dalam bahasa, lokal, dan budaya yang berbeda. Sertakan seperangkat aturan ini jika aplikasi Anda dilokalkan dan/atau di globalisasi.
Aturan Minimum Terkelola Microsoft Aturan ini berfokus pada masalah paling penting dalam kode Anda di mana Analisis Kode adalah yang paling akurat. Aturan ini berjumlah kecil dan hanya dimaksudkan untuk dijalankan dalam edisi Visual Studio terbatas. Gunakan MinimumRecommendedRules.ruleset dengan edisi Visual Studio lainnya.
Aturan yang Direkomendasikan Terkelola Microsoft Aturan ini berfokus pada masalah paling penting dalam kode Anda. Masalah ini termasuk potensi lubang keamanan, crash aplikasi, dan kesalahan logika dan desain penting lainnya. Sebaiknya sertakan seperangkat aturan ini dalam seperangkat aturan kustom apa pun yang Anda buat untuk proyek Anda.
Aturan Minimum Microsoft Mixed (C++ /CLR) Aturan ini berfokus pada masalah paling penting dalam proyek C++ Anda yang mendukung Common Language Runtime. Masalah ini termasuk potensi lubang keamanan, crash aplikasi, dan kesalahan logika dan desain penting lainnya. Sebaiknya sertakan seperangkat aturan ini dalam seperangkat aturan kustom apa pun yang Anda buat untuk proyek C++ yang mendukung Common Language Runtime.
Aturan yang Direkomendasikan Microsoft Mixed (C++ /CLR) Aturan ini berfokus pada masalah paling umum dan kritis dalam proyek C++ Anda yang mendukung Common Language Runtime. Masalah ini termasuk potensi lubang keamanan, crash aplikasi, dan kesalahan logika dan desain penting lainnya. Set aturan ini dirancang untuk digunakan dalam edisi Visual Studio Professional dan yang lebih tinggi.
Aturan Keamanan Microsoft Seperangkat aturan ini berisi semua aturan keamanan Microsoft. Sertakan seperangkat aturan ini untuk memaksimalkan jumlah potensi masalah keamanan yang dilaporkan.

Untuk menyertakan setiap aturan:

Seperangkat Aturan Deskripsi
Microsoft All Rules Seperangkat aturan ini berisi semua aturan. Menjalankan seperangkat aturan ini dapat mengakibatkan sejumlah besar peringatan dilaporkan. Gunakan seperangkat aturan ini untuk mendapatkan gambaran komprehensif tentang semua masalah dalam kode Anda. Ini dapat membantu Anda memutuskan seperangkat aturan mana yang lebih berfokus yang paling tepat untuk dijalankan untuk proyek Anda.

Menjalankan analisis kode

Pada halaman Analisis Kode dialog Properti Proyek, Anda dapat mengonfigurasi analisis kode untuk dijalankan setiap kali Anda membangun proyek Anda. Anda juga dapat menjalankan analisis kode secara manual.

Untuk menjalankan analisis kode pada solusi:

  • Di menu Build , pilih Jalankan Analisis Kode pada Solusi.

Untuk menjalankan analisis kode pada proyek:

  1. Di Penjelajah Solusi, pilih nama proyek.

  2. Di menu Build , pilih Jalankan Analisis Kode pada Nama Proyek.

Untuk menjalankan analisis kode pada file:

  1. Di Penjelajah Solusi, pilih nama file.

  2. Di menu Build , pilih Jalankan Analisis Kode pada File atau tekan Ctrl+Shift+Alt+F7.

    Proyek atau solusi dikompilasi dan analisis kode berjalan. Hasil muncul di jendela Daftar Kesalahan.

Menganalisis dan mengatasi peringatan analisis kode

Jendela Daftar Kesalahan mencantumkan peringatan analisis kode yang ditemukan. Hasilnya ditampilkan dalam tabel. Jika informasi lebih lanjut tersedia tentang peringatan tertentu, kolom pertama berisi kontrol ekspansi. Pilih untuk memperluas tampilan untuk informasi tambahan tentang masalah ini. Jika memungkinkan, analisis kode menampilkan nomor baris dan logika analisis yang mengarah ke peringatan.

Untuk informasi terperinci tentang peringatan, termasuk kemungkinan solusi untuk masalah ini, pilih ID peringatan di kolom Kode untuk menampilkan artikel bantuan online yang sesuai.

Klik dua kali peringatan untuk memindahkan kursor ke baris kode yang menyebabkan peringatan di editor kode Visual Studio. Atau, tekan Enter pada peringatan yang dipilih.

Setelah memahami masalahnya, Anda dapat mengatasinya dalam kode Anda. Kemudian, jalankan ulang analisis kode untuk memastikan bahwa peringatan tidak lagi muncul di Daftar Kesalahan.

Membuat item kerja untuk peringatan analisis kode

Anda dapat menggunakan fitur pelacakan item kerja untuk mencatat bug dari dalam Visual Studio. Untuk menggunakan fitur ini, Anda harus tersambung ke instans Azure DevOps Server (sebelumnya, Team Foundation Server).

Untuk membuat item kerja untuk satu atau beberapa peringatan kode C/C++

  1. Di Daftar Kesalahan, perluas dan pilih peringatan

  2. Pada menu pintasan untuk peringatan, pilih Buat Item Kerja, lalu pilih jenis item kerja.

  3. Visual Studio membuat satu item kerja untuk peringatan yang dipilih dan menampilkan item kerja di jendela dokumen IDE.

  4. Tambahkan informasi tambahan apa pun, lalu pilih Simpan Item Kerja.

Hasil analisis kode pencarian dan filter

Anda dapat mencari daftar panjang pesan peringatan dan Anda dapat memfilter peringatan dalam solusi multi-proyek.

  • Untuk memfilter peringatan menurut judul atau ID peringatan: Masukkan kata kunci dalam kotak Daftar Kesalahan Pencarian.

  • Untuk memfilter peringatan menurut tingkat keparahan: Secara default, pesan analisis kode diberi tingkat keparahan Peringatan. Anda dapat menetapkan tingkat keparahan satu atau beberapa pesan sebagai Kesalahan dalam seperangkat aturan kustom. Pada kolom Tingkat Keparahan Daftar Kesalahan, pilih panah drop-down lalu ikon filter. Pilih Peringatan atau Kesalahan untuk menampilkan hanya pesan yang diberi tingkat keparahan masing-masing. Pilih Pilih Semua untuk menampilkan semua pesan.

Lihat juga