PVS-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 .
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-studioUntuk menginstal PVS-Studio dari paket instalasi, Anda dapat menggunakan utilitas gdebi:
sudo gdebi pvs-studio-VERSION.debProses instalasi dijelaskan lebih detail di "» 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 "".
Verifikasi proyek
Setelah menginstal penganalisis, Anda dapat mulai memeriksa proyek. Ada dua cara utama untuk melakukan ini:
- pemantauan kompilasi;
- Jalankan dalam proses build langsung dari sistem build.
Mari pertimbangkan metode pertama terlebih dahulu. Untuk memulai pemantauan di Linux, Anda memerlukan utilitas . Penganalisis menggunakannya untuk mengumpulkan informasi tentang proses apa yang sedang berjalan selama pembuatan proyek.
Peluncuran dilakukan dengan perintah berikut:
pvs-studio-analyzer trace -- makeContoh 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.logOutputnya 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 . Dalam hal ini, analisis dapat dimulai dengan perintah
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonPerlu 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 MyCompilerIni 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 di repositori PVS_Studio:
Untuk instruksi lebih rinci tentang menjalankan analisis di Linux, lihat .
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_dirSetelah 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:

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

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 "".
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.logInformasi 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. .
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. .
Jika Anda ingin membagikan artikel ini kepada audiens berbahasa Inggris, silakan gunakan tautan terjemahan: Yuri Minaev. .
Sumber: www.habr.com
