
PVS-Studio mendukung analisis proyek dalam C, C ++, C # dan Java. Anda dapat menggunakan penganalisis di bawah sistem Windows, Linux, dan macOS. Posting ini akan fokus pada menganalisis kode yang ditulis dalam C dan C ++ di lingkungan Linux.
Instalasi
Ada beberapa cara untuk menginstal PVS-Studio di Linux, tergantung pada jenis distribusinya. Cara yang paling mudah dan disukai adalah dengan menggunakan repositori: ini memungkinkan Anda untuk secara otomatis memperbarui penganalisis ketika versi baru dirilis. Opsi kedua adalah menggunakan paket instalasi, yang dapat diunduh di
sini .
Perintah yang harus Anda selesaikan untuk menginstal tergantung pada distribusi Linux yang Anda gunakan. Misalnya, untuk sistem berbasis Debian, instalasi dari repositori terlihat seperti ini:
wget -q -O - https:
Untuk menginstal PVS-Studio dari paket instalasi, Anda dapat menggunakan utilitas gdebi:
sudo gdebi pvs-studio-VERSION.deb
Proses instalasi dijelaskan secara lebih rinci di bagian "
Menginstal dan memperbarui PVS-Studio di Linux " dari dokumentasi. Anda juga dapat menemukan informasi tentang sistem berbasis non-Debian di sana.
Setelah instalasi, Anda harus memasukkan data lisensi. Untuk melakukan ini, gunakan perintah
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]
Di mana
NAME dan
KEY adalah nama untuk mana lisensi terdaftar dan kunci lisensi. Parameter opsional
โo memungkinkan Anda menentukan jalur tempat file lisensi akan dihasilkan. Secara default, ini disimpan dalam direktori
~ / .config / PVS-Studio / .
Anda bisa mendapatkan kunci percobaan pada halaman "
Unduh dan coba PVS-Studio ".
Verifikasi Proyek
Setelah menginstal penganalisis, Anda dapat mulai memeriksa proyek. Ada dua cara utama untuk melakukan ini:
- Pemantauan kompilasi;
- Mulai selama proses perakitan langsung dari sistem perakitan.
Mari kita pertimbangkan metode pertama terlebih dahulu. Untuk mulai memantau di Linux, Anda memerlukan utilitas
strace . Penganalisa menggunakannya untuk mengumpulkan informasi tentang proses yang diluncurkan selama perakitan proyek.
Peluncuran dilakukan dengan perintah berikut:
pvs-studio-analyzer trace -- make
Contoh ini menggunakan build with make, tetapi perintah lain yang Anda gunakan untuk memulai build bisa menggantikan make. Parameter baris perintah dapat diteruskan dengan cara biasa.
Setelah perakitan, strace akan membuat file yang akan digunakan penganalisis untuk memverifikasi kode sumber. Anda dapat menjalankan analisis dengan perintah
pvs-studio-analyzer analyze -o /path/to/project.log
Output akan berupa file yang disandikan dengan hasilnya, yang dapat Anda konversi ke salah satu format yang didukung. Kami akan mempertimbangkan bekerja dengan laporan di bagian selanjutnya.
Selain menggunakan strace, analisis juga dapat dijalankan berdasarkan file
compile_commands.json (JSON Compilation Database). Banyak sistem build memungkinkan Anda untuk mengekspor perintah panggilan kompiler, atau Anda dapat menggunakan utilitas
BEAR untuk ini. Dalam hal ini, Anda dapat menjalankan analisis dengan perintah
pvs-studio-analyzer analyze โf /path/to/compile_commands.json
Perlu dicatat bahwa penganalisa mengenali kompiler yang digunakan oleh nama file yang dapat dieksekusi. Jika selama pemeriksaan Anda mendapatkan kesalahan "Tidak ada unit kompilasi ditemukan", coba tentukan nama kompiler Anda melalui parameter
โcompiler atau
โc :
pvs-studio-analyzer analyze -c MyCompiler
Ini mungkin diperlukan saat kompilasi silang dan menggunakan kompiler dengan nama file yang tidak dapat dieksekusi.
Selain meluncurkan dalam mode pemantauan, Anda dapat mengintegrasikan penganalisa ke dalam sistem perakitan atau IDE Anda. Anda dapat menemukan contoh proyek dengan integrasi yang sudah dikonfigurasi pada
GitHub di repositori PVS_Studio:
Untuk instruksi lebih rinci tentang cara menjalankan analisis di Linux, lihat
dokumentasi .
Bekerja dengan laporan
Setelah memeriksa proyek, penganalisa membuat laporan kode. Untuk mengonversinya ke salah satu format yang didukung, gunakan utilitas
plog-converter , yang diinstal bersama dengan PVS-Studio.
Utilitas mendukung format berikut:
- xml - format yang nyaman untuk pemrosesan tambahan hasil analisis, didukung oleh plugin untuk SonarQube;
- csv adalah format teks untuk menyajikan data tabular;
- errorfile - format output untuk gcc dan dentang;
- daftar tugas - format kesalahan yang dapat dibuka di QtCreator;
- html - laporan html dengan deskripsi singkat tentang hasil analisis;
- fullhtml - laporan html dengan hasil analisis pengurutan dengan berbagai parameter dan navigasi melalui kode sumber.
Format fullhtml adalah cara yang paling nyaman untuk melihat laporan, karena memungkinkan Anda untuk pergi ke baris kode sumber di mana peringatan itu terjadi. Perintah berikut memungkinkan Anda untuk mengonversi laporan analisa ke format ini:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
Setelah perintah dieksekusi, direktori
/ path / report_dir akan dibuat, di mana file laporan akan terletak.
Perhatikan sakelar
-a . Ini memungkinkan Anda untuk menentukan peringatan mana yang harus dimasukkan dalam laporan. Ini nyaman jika Anda perlu memfilter keluaran penganalisis. Tim di atas akan membuat laporan yang hanya akan berisi peringatan dari kelompok analisis umum tingkat kepercayaan pertama dan kedua (
Tinggi dan
Sedang ).
Contoh Laporan:
Dengan mengklik di sel
Lokasi pesan, Anda dapat pergi ke baris kode yang sesuai:
Mengklik pada nomor diagnostik di kolom
Kode akan membuka dokumentasi yang menggambarkan diagnostik ini.
Penindasan respons analis
Saat memeriksa kode dengan penganalisa statis, positif palsu atau hanya pesan yang tidak diinginkan (noise) dimungkinkan. PVS-Studio menyediakan mekanisme untuk menekan peringatan tersebut. Untuk menekan alarm satu per satu, Anda dapat menggunakan salah satu metode yang dijelaskan di bagian dokumentasi "
Menekan peringatan palsu ".
Juga, ketika menganalisis kode lama, mungkin perlu untuk menekan semua pesan secara besar-besaran. Sebagai aturan, ini diperlukan untuk memeriksa hanya kode yang ditambahkan ke basis kode yang ada. Untuk ini, parameter
penekan utilitas
pvs-studio-analyzer digunakan .
Anda dapat menekan pesan dalam laporan secara massal menggunakan perintah berikut:
pvs-studio-analyzer suppress /path/to/report.log
Informasi tentang pesan yang disimpan disimpan dalam file
suppress_base.json , yang terletak di sebelah proyek. Pesan semacam itu dikecualikan dari laporan selama inspeksi berikutnya.
Mekanisme ini dijelaskan secara lebih rinci dalam dokumentasi di
sini .
Kesimpulan
Ini adalah pengantar singkat untuk menggunakan analisa PVS-Studio untuk Linux. Saya harap ini bermanfaat dan menjawab pertanyaan yang paling sering diajukan. Anda dapat membaca lebih lanjut tentang topik artikel dalam dokumentasi di
sini .

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