Berkenalan dengan penganalisis statis PVS-Studio saat mengembangkan program C++ di lingkungan Linux

Berkenalan dengan penganalisis statis PVS-Studio saat mengembangkan program C++ di lingkungan LinuxPVS-Studio mendukung analisis proyek di C, C++, C# dan Java. Penganalisis dapat digunakan di bawah sistem Windows, Linux dan macOS. Catatan ini akan fokus pada analisis kode yang ditulis dalam C dan C ++ di lingkungan Linux.

Instalasi

Ada berbagai cara untuk menginstal PVS-Studio di Linux, tergantung pada jenis distribusinya. Cara yang paling nyaman dan disukai adalah dengan menggunakan repositori: ini memungkinkan Anda memperbarui penganalisa secara otomatis saat versi baru dirilis. Opsi kedua adalah menggunakan paket instalasi yang dapat Anda unduh di sini.

Perintah yang Anda butuhkan untuk menjalankan instalasi bergantung pada distribusi Linux yang Anda gunakan. Misalnya, untuk sistem berbasis Debian, penginstalan dari repositori terlihat seperti ini:

wget -q -O - https://files.viva64.com/etc/pubkey.txt | sudo apt-key add -

sudo wget -O /etc/apt/sources.list.d/viva64.list 
https://files.viva64.com/etc/viva64.list

sudo apt update
sudo apt install pvs-studio

Untuk menginstal PVS-Studio dari paket instalasi, Anda dapat menggunakan utilitas gdebi:

sudo gdebi pvs-studio-VERSION.deb

Proses instalasi dijelaskan lebih detail di "Menginstal dan memperbarui PVS-Studio di Linux» dokumentasi. Anda juga dapat menemukan informasi tentang sistem berbasis non-Debian di sana.

Setelah instalasi, Anda perlu memasukkan data lisensi. Untuk ini, perintah digunakan

pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]

Где NAMA и KUNCI – nama tempat lisensi terdaftar dan kunci lisensi. Parameter opsional -O memungkinkan Anda untuk mengatur jalur di mana file lisensi akan dibuat. Secara default disimpan di direktori ~/.config/PVS-Studio/.

Anda bisa mendapatkan kunci percobaan di halaman "Unduh dan coba PVS-Studio".

Verifikasi proyek

Setelah menginstal penganalisis, Anda dapat mulai memeriksa proyek. Ada dua cara utama untuk melakukan ini:

  1. pemantauan kompilasi;
  2. Jalankan dalam proses build langsung dari sistem build.

Mari pertimbangkan metode pertama terlebih dahulu. Untuk memulai pemantauan di Linux, Anda memerlukan utilitas jejak. Penganalisis menggunakannya untuk mengumpulkan informasi tentang proses apa yang sedang berjalan selama pembuatan proyek.

Peluncuran dilakukan dengan perintah berikut:

pvs-studio-analyzer trace -- make

Contoh ini menggunakan make untuk membangun, tetapi make bisa diganti dengan perintah lain yang Anda gunakan untuk memulai pembangunan. Parameter baris perintah dapat diteruskan dengan cara biasa.

Setelah dibuat, strace akan membuat file yang akan digunakan parser untuk memeriksa kode sumber. Anda dapat memulai analisis dengan perintah

pvs-studio-analyzer analyze -o /path/to/project.log

Outputnya akan berupa file yang disandikan dengan hasil, yang dapat Anda konversi ke salah satu format yang didukung. Kami akan membahas cara bekerja dengan laporan di bagian selanjutnya.

Selain menggunakan strace, analisis juga dapat dijalankan berdasarkan file kompilasi_perintah.json (Database Kompilasi JSON). Banyak sistem build memungkinkan Anda untuk mengekspor perintah pemanggilan kompiler, atau Anda dapat menggunakan utilitas BERUANG. Dalam hal ini, analisis dapat dimulai dengan perintah

pvs-studio-analyzer analyze –f /path/to/compile_commands.json

Perlu dicatat bahwa penganalisis mengenali kompiler yang digunakan dengan nama file yang dapat dieksekusi. Jika Anda mendapatkan kesalahan "Unit kompilasi tidak ditemukan" saat memeriksa, coba tentukan nama kompiler Anda melalui parameter --penyusun или -C:

pvs-studio-analyzer analyze -c MyCompiler

Ini mungkin diperlukan saat melakukan kompilasi silang dan menggunakan kompiler dengan nama file yang tidak dapat dieksekusi standar.

Selain berjalan dalam mode monitor, Anda dapat mengintegrasikan penganalisis ke dalam sistem build atau IDE Anda. Anda dapat menemukan contoh proyek dengan integrasi yang sudah dikonfigurasi di GitHub di repositori PVS_Studio:

Untuk instruksi lebih rinci tentang menjalankan analisis di Linux, lihat dokumentasi.

Bekerja dengan laporan

Setelah memeriksa desain, penganalisis menghasilkan laporan berkode. Untuk mengonversinya ke salah satu format yang didukung, Anda harus menggunakan utilitas konverter plog, yang diinstal bersama dengan PVS-Studio.

Utilitas mendukung format berikut:

  • xml - format yang nyaman untuk pemrosesan hasil analisis tambahan, didukung oleh plugin untuk SonarQube;
  • csv adalah format teks yang dirancang untuk mewakili data tabular;
  • errorfile - format output gcc dan dentang;
  • daftar tugas - format kesalahan yang dapat dibuka di QtCreator;
  • html – laporan html dengan penjelasan singkat tentang hasil analisis;
  • fullhtml – laporan html dengan hasil analisis yang diurutkan berdasarkan berbagai parameter dan navigasi kode sumber.

Untuk melihat laporan, format fullhtml paling nyaman, karena memungkinkan Anda untuk melompat ke baris kode sumber di mana peringatan terjadi. Perintah berikut memungkinkan Anda mengonversi laporan penganalisis ke format ini:

plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir

Setelah menjalankan perintah, sebuah direktori akan dibuat /jalur/laporan_dir, yang akan berisi file laporan.

Perhatikan kuncinya -a. Ini memungkinkan Anda menentukan peringatan mana yang harus disertakan dalam laporan. Ini nyaman jika ada kebutuhan untuk memfilter keluaran penganalisa. Perintah di atas akan menghasilkan laporan yang hanya berisi peringatan dari grup analisis umum tingkat kepercayaan pertama dan kedua (High и Medium).

Contoh laporan:

Berkenalan dengan penganalisis statis PVS-Studio saat mengembangkan program C++ di lingkungan Linux

Pada klik di sel Lokasi pesan, Anda dapat melompat ke baris kode yang sesuai:

Berkenalan dengan penganalisis statis PVS-Studio saat mengembangkan program C++ di lingkungan Linux

Klik pada nomor diagnostik di kolom Kode akan membuka dokumentasi yang menjelaskan diagnostik ini.

Penekanan Analisis

Saat memeriksa kode dengan penganalisa statis, positif palsu atau pesan yang tidak diinginkan (noise) mungkin terjadi. PVS-Studio menyediakan mekanisme untuk menekan peringatan tersebut. Untuk mematikan alarm secara individual, Anda dapat menerapkan salah satu metode yang dijelaskan di bagian dokumentasi "Penindasan peringatan palsu".

Selain itu, saat menganalisis kode lama, mungkin perlu untuk menyembunyikan semua pesan secara besar-besaran. Biasanya, ini diperlukan untuk memeriksa hanya kode yang ditambahkan ke basis kode yang ada. Untuk melakukan ini, gunakan parameter menekan keperluan pvs-studio-analyzer.

Anda dapat menyembunyikan pesan secara massal dalam laporan dengan perintah berikut:

pvs-studio-analyzer suppress /path/to/report.log

Informasi tentang pesan yang ditekan disimpan dalam file menekan_base.json, yang terletak di sebelah proyek. Pesan semacam itu dikecualikan dari laporan dalam pemeriksaan selanjutnya.

Mekanisme ini dijelaskan lebih rinci dalam dokumentasi. di sini.

Kesimpulan

Ini adalah pengantar singkat untuk menggunakan penganalisa PVS-Studio di Linux. Saya harap ini membantu dan menjawab pertanyaan yang paling sering diajukan. Anda dapat membaca lebih lanjut tentang topik artikel di dokumentasi. di sini.

Berkenalan dengan penganalisis statis PVS-Studio saat mengembangkan program C++ di lingkungan Linux

Jika Anda ingin membagikan artikel ini kepada audiens berbahasa Inggris, silakan gunakan tautan terjemahan: Yuri Minaev. Memulai dengan Penganalisis Statis PVS-Studio untuk Pengembangan C++ di Linux.

Sumber: www.habr.com

Tambah komentar