Menggunakan PVS-Studio Static Analyzer dalam Pengembangan C dan C ++ untuk Sistem Tertanam


Artikel ini akan memberi tahu Anda cara meluncurkan analisis proyek tertanam dan cara bekerja dengan laporan penganalisa. Alat analisa PVS-Studio mendukung sejumlah kompiler untuk sistem embedded. Versi saat ini memungkinkan memeriksa proyek yang dibangun dengan salah satu kompiler berikut di bawah Window, Linux, dan macOS:


Instalasi


Prosedur instalasi tergantung pada sistem operasi yang Anda gunakan dalam pengembangan. Di Linux, Anda dapat menginstal penganalisis dari repositori, atau paket instalasi.

Misalnya, pada sistem berbasis Debian:

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 

atau

 sudo gdebi pvs-studio-VERSION.deb 

Di bawah macOS, Anda dapat menggunakan Homebrew untuk menginstal dan memperbarui:

 brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio 

Pilihan lain - menginstal dari paket dmg , atau membongkar dari arsip secara manual.

Di bawah Windows, Anda harus menggunakan penginstal:


Anda dapat mengunduh paket instalasi untuk setiap sistem yang didukung, serta meminta kunci percobaan, jika Anda memerlukannya, di halaman " Unduh dan evaluasi PVS-Studio ".

Setelah instalasi selesai, Anda harus memasukkan kunci lisensi. Artikel dokumentasi " Cara memasukkan Lisensi PVS-Studio dan langkah selanjutnya " menjelaskan proses ini secara terperinci sehubungan dengan berbagai platform.

Memeriksa proyek Anda


Memeriksa proyek yang dibangun untuk sistem tertanam mirip dengan memeriksa proyek yang dikembangkan untuk Windows, Linux, atau macOS.

Opsi yang tersedia di Linux dijelaskan dalam artikel " Memulai dengan Analisis Statis PVS-Studio untuk Pengembangan C ++ di Linux ". Ingatlah bahwa proyek tersemat dikompilasi silang, dan kompiler Anda dapat memiliki nama yang tidak standar. Karena ini, Anda mungkin perlu menentukannya saat meluncurkan analisis, yang dapat Anda lakukan melalui kunci baris perintah –compiler , atau –c .

 pvs-studio-analyzer analyze -c MyCompiler 

Menggunakannya diperlukan jika penganalisis tidak dapat mendeteksi tipe kompiler, yaitu, jika mengeluarkan kesalahan "Tidak ada unit kompilasi yang ditemukan".

Karena platform target berbeda dari pengembangan karena kompilasi silang, Anda mungkin juga perlu menentukan platform target melalui tombol --platform , bersama dengan tipe preprocessor ( --preprocessor ).

Platform yang didukung: win32, x64, linux32, linux64, macos, arm.

Pendahulu yang didukung: gcc, clang , keil.

Di Linux, platform linux64 dan preprosesor gcc adalah defaultnya.

Jika Anda menggunakan Windows, Anda dapat memeriksa proyek Anda dalam mode pemantauan kompiler. Untuk melakukannya, gunakan utilitas " C and C ++ Compiler Monitoring UI ", yang disertakan dengan penganalisis. Untuk mulai memantau, buka menu Alat dan pilih Analisis File Anda ... Dialog ini akan terbuka:


Klik tombol " Mulai Pemantauan " dan mulailah membangun proyek Anda. Ketika build selesai, klik tombol " Stop Monitoring " di jendela dialog yang terletak di sudut kanan bawah layar:


Jendela utama utilitas " C dan C ++ Compiler Monitoring UI " memungkinkan Anda untuk melihat hasil analisis.

Juga, dimungkinkan untuk memulai analisis dari baris perintah dengan menggunakan utilitas CLMonitor. Inilah perintah yang akan memulai pemantauan:

 CLMonitor.exe monitor 

Setelah membangun, mulai lagi dalam mode analisis:

 CLMonitor.exe analyze -l "<path>\out.plog" 

Penganalisa akan memeriksa proyek Anda dan menyimpan hasilnya ke file yang ditentukan melalui tombol -l .

Lihat juga " Sistem Pemantau Kompiler dalam PVS-Studio ".

Bekerja dengan Laporan


Untuk melihat laporan di Linux, Anda perlu mengonversi file log, yang dihasilkan oleh penganalisa, menjadi salah satu format yang didukung. Gunakan utilitas plog-converter untuk melakukan ini. Misalnya, Anda dapat membuat laporan HTML, yang memungkinkan Anda untuk melihat kode sumber, dengan perintah ini:

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

Konversi laporan dijelaskan secara lebih rinci dalam artikel " Memulai dengan Penganalisis Statis PVS-Studio untuk Pengembangan C ++ di Linux ".

Versi Windows juga memiliki utilitas bernama PlogConverter , yang serupa dalam penggunaannya dengan Linux:

 PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2 

atau

 PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2 

Anda juga dapat melihat laporan dalam format plog dengan utilitas " C dan C ++ Compiler Monitoring UI " melalui perintah menu- > Open PVS-Studio Log ....

Contoh:


Jika perlu, Anda dapat mengekspor laporan ke salah satu format yang didukung melalui menu File utilitas.

Misra standar pengodean


PVS-Studio mengklasifikasikan peringatannya menurut CWE dan SEI CERT , yang berfungsi cukup baik untuk pengujian keamanan statis ( SAST ) aplikasi biasa. Namun, sistem tertanam memiliki persyaratan keamanan yang berbeda, dicakup oleh standar MISRA yang dikembangkan secara khusus. Versi PVS-Studio saat ini mendukung sebagian MISRA C dan MISRA C ++. Anda dapat melihat daftar aturan yang didukung yang diperluas secara berkala di sini .

Menggunakan aturan MISRA ketika memeriksa proyek yang tidak tertanam biasanya merupakan ide yang buruk, karena spesifik standar. Dalam kebanyakan kasus, jika kode tersebut pada awalnya tidak berorientasi pada MISRA, pemeriksaan akan menghasilkan banyak kesalahan positif dan umumnya peringatan kebisingan. Dengan demikian, aturan MISRA dinonaktifkan secara default.

Untuk mengaktifkan MISRA di Linux, jalankan analisis dengan tombol -a dan berikan parameter numerik, sesuai dengan mode yang diinginkan. Parameter ini adalah kombinasi bidang bit:

 -a [MODE], --analysis-mode [MODE] MODE defines the type of warnings: 1 - 64-bit errors; 2 - reserved; 4 - General Analysis; 8 - Micro-optimizations; 16 - Customers Specific Requests; 32 - MISRA. Modes can be combined by adding the values Default: 4 

Contoh (dengan aturan GA dan MISRA diaktifkan):

 pvs-studio-analyzer analyze -a 36 -o /path/report.log 

Anda juga perlu memberi tahu plog-converter untuk memasukkan peringatan MISRA dalam laporan yang dihasilkan:

 plog-converter -a MISRA:1,2,3 -m misra .... 

Di Windows, Anda dapat menggunakan pengaturan utilitas " C dan C ++ Compiler Monitoring UI ":


Lihat artikel " PVS-Studio: Dukungan MISRA C dan MISRA C ++ Standar Pengkodean " untuk mempelajari lebih lanjut tentang dukungan MISRA.

Kesimpulan


Dalam artikel ini, kami telah membahas secara singkat fitur-fitur penganalisa PVS-Studio untuk memeriksa proyek-proyek bertarget tertanam. Jika Anda memerlukan informasi lebih lanjut tentang penggunaan analisa, saya sarankan Anda merujuk ke artikel berikut:

Source: https://habr.com/ru/post/id463351/


All Articles