PVS-Studio na-akwado nyocha nke ọrụ ndị e dere na C, C++, C#, na Java. Enwere ike iji nyocha ahụ na sistemụ. Windows, Linux и macOSIsiokwu a ga-atụle nyocha nke koodu e dere na C na C++ na gburugburu ebe obibi Linux.
ọnọdụ
Wụnye PVS-Studio n'okpuru Linux E nwere ọtụtụ ụzọ isi mee nke a, dabere na ụdị nkesa. Ụzọ kachasị mma ma dị mma bụ iji ebe nchekwa, ebe nke a na-enye ohere maka mmelite akpaka nke onye nyocha mgbe ewepụtara ụdị ọhụrụ. Nhọrọ nke abụọ bụ iji ngwugwu nrụnye, nke enwere ike ibudata. .
Iwu ndị ị chọrọ iji rụọ ọrụ maka ntinye dabere na nkesa. Linux, nke ị na-eji. Dịka ọmụmaatụ, maka sistemụ dabere na Debian, ntinye site na ebe nchekwa ahụ dị ka nke a:
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-studioIji tinye PVS-Studio site na ngwugwu nrụnye, ị nwere ike iji gdebi utility:
sudo gdebi pvs-studio-VERSION.debA kọwara usoro nrụnye n'ụzọ zuru ezu na "» akwụkwọ. N'ebe ahụ, ị nwekwara ike ịchọta ozi gbasara sistemụ ndị na-adabereghị na Debian.
Mgbe echichi gasịrị, ịkwesịrị itinye data ikike. Maka nke a, a na-eji iwu ahụ
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]Ebee AHA и AMAOKWU – aha nke edebanye aha ikike na igodo ikike. Oke nhọrọ -ma ọ bụ na-enye gị ohere ịtọ ụzọ ebe faịlụ ikike ga-ewepụta. Site na ndabara, echekwara ya na ndekọ ~/.config/PVS-Studio/.
Ị nwere ike nweta igodo nnwale na ibe "".
Nyochaa oru ngo
Mgbe ị wụnye analyzer, ị nwere ike ịmalite ịlele ọrụ. Enwere ụzọ abụọ isi mee nke a:
- nlekota nchịkọta;
- Na-agba ọsọ na-ewu usoro ozugbo site na-ewu usoro.
Ka anyị buru ụzọ leba anya n'ụzọ mbụ. Iji malite nlekota n'okpuru Linux, ị ga-achọ ihe enyemaka . Onye nyocha na-eji ya na-anakọta ozi gbasara usoro ndị na-eme n'oge arụ ọrụ a.
A na-eme mmalite site n'iwu a:
pvs-studio-analyzer trace -- makeIhe atụ a na-eji make iji wuo, mana ime nwere ike dochie ya site na iwu ọ bụla ọzọ ị na-eji malite ihe owuwu ahụ. Enwere ike ịnyefe parampat ahịrị iwu na ya n'ụzọ ọ na-adị.
Ozugbo arụchara ya, strace ga-emepụta faịlụ nke parser ga-eji lelee koodu isi mmalite. Ị nwere ike ịmalite nyocha site na iwu
pvs-studio-analyzer analyze -o /path/to/project.logIhe mmepụta ga-abụ faịlụ agbakwunyere na nsonaazụ ya, nke ị nwere ike ịtụgharị gaa na otu n'ime ụdị akwadoro. Anyị ga-atụle otu esi arụ ọrụ na akụkọ na ngalaba na-esote.
Na mgbakwunye na iji strace, a pụkwara ịme nyocha dabere na faịlụ nchịkọta_iwu.json (JSON Compilation Database). Ọtụtụ sistemụ na-ewu ụlọ na-enye gị ohere mbupụ iwu ịkpọku ndị na-achịkọta ihe, ma ọ bụ ịnwere ike iji ngwa ahụ . N'okwu a, enwere ike ịmalite nyocha ahụ na iwu ahụ
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonEkwesiri iburu n'uche na onye nyocha na-amata mkpokọta ejiri aha nke faịlụ executable. Ọ bụrụ n'inweta mperi "Ọnweghị mkpokọta mkpokọta ahụrụ" mgbe ị na-elele, nwaa ịkọwa aha onye nchịkọta gị site na oke. --nchịkọta ma ọ bụ -c:
pvs-studio-analyzer analyze -c MyCompilerNke a nwere ike ịdị mkpa mgbe ị na-agbakọta na iji ndị nchịkọta nwere aha faịlụ na-abụghị ọkọlọtọ.
Na mgbakwunye na ịgba ọsọ na ọnọdụ nleba anya, ị nwere ike itinye onye nyocha n'ime sistemụ nrụpụta gị ma ọ bụ IDE. Ị nwere ike ịhụ ihe atụ nke oru ngo nwere ahaziri mbanye na na ebe nchekwa PVS_Studio:
Ntuziaka zuru ezu gbasara otu esi eme nyocha ahụ dị n'okpuru. Linux lebanye anya .
Na-arụ ọrụ na akụkọ
Mgbe ịlele nhazi ahụ, onye nyocha ahụ na-ewepụta akụkọ koodu. Iji tọghata ya na otu n'ime ndị na-akwado formats, ị kwesịrị ị na-eji ike plog-ngbanwe, nke arụnyere na PVS-Studio.
Ngwa ahụ na-akwado usoro ndị a:
- xml - usoro dị mma maka nhazi ọzọ nke nsonaazụ nyocha, nke ngwa mgbakwunye maka SonarQube kwadoro;
- csv bụ usoro ederede emebere iji nọchite anya data tabular;
- njehie - gcc na usoro mmepụta clang;
- tasklist - njehie usoro nwere ike meghere na QtCreator;
- html - akụkọ html nwere nkọwa dị nkenke nke nsonaazụ nyocha;
- fullhtml – html na-akọ akụkọ nwere nsonaazụ nyocha ahaziziri site na paramita dị iche iche yana igodo koodu isi mmalite.
Ka ilele akụkọ ahụ, usoro fullhtml kacha adabara, ebe ọ na-enye gị ohere ịwụba n'ahịrị koodu isi mmalite nke ịdọ aka ná ntị mere. Iwu a na-enye gị ohere ịtụgharị akụkọ nyocha ka ọ bụrụ usoro a:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dirMgbe ịmechara iwu ahụ, a ga-emepụta ndekọ /ụzọ/report_dir, nke ga-ebu faịlụ akụkọ.
Lezienụ anya na igodo -a. Ọ na-enye gị ohere ịkọwapụta ịdọ aka ná ntị kwesịrị ịgụnye na akụkọ ahụ. Nke a dị mma ma ọ bụrụ na ọ dị mkpa ka nzacha mmepụta nke analyzer. Iwu a dị n'elu ga-ewepụta akụkọ ga-enwe naanị ịdọ aka ná ntị sitere na otu nyocha izugbe nke ọkwa ntụkwasị obi nke mbụ na nke abụọ (High и ọkara).
Kọọ ihe atụ:

Pịa na cell Ọnọdụ ozi, ị nwere ike ima elu na ahịrị koodu kwekọrọ:

Pịa na nọmba nchoputa dị na kọlụm Usoro ga-emepe akwụkwọ na-akọwa nchọpụta a.
Mbelata nyocha
Mgbe ị na-eji ihe nyocha static na-elele koodu ahụ, ọ ga-ekwe omume omume ụgha ma ọ bụ ozi achọghị (mkpọtụ). PVS-Studio na-enye usoro maka ịkwụsị ịdọ aka ná ntị dị otú ahụ. Maka mkpochapụ nke mkpu n'otu n'otu, ị nwere ike itinye otu n'ime usoro akọwara na ngalaba akwụkwọ "".
Ọzọkwa, mgbe ị na-enyocha koodu ochie, ọ nwere ike ịdị mkpa ikpochapụ ozi niile nke ukwuu. Dịka iwu, nke a dị mkpa iji lelee naanị koodu agbakwunyere na codebase dị ugbu a. Iji mee nke a, jiri paramita igbochi utilities pvs-studio-analyzer.
Ị nwere ike ikpochapụ ozi n'ime akụkọ nwere iwu a:
pvs-studio-analyzer suppress /path/to/report.logA na-echekwa ozi gbasara ozi akpọchiri n'ime faịlụ suppress_base.json, nke dị n'akụkụ ọrụ ahụ. Ewepụrụ ozi ndị dị otú ahụ na akụkọ ahụ na nlele ndị na-esote.
A kọwara usoro a n'ụzọ zuru ezu na akwụkwọ. .
nkwubi
Nke a bụ obere okwu mmalite maka iji PVS-Studio analyzer n'okpuru LinuxEnwere m olileanya na nke a baara gị uru ma zaa ụfọdụ ajụjụ ndị ị na-ajụkarị. Ị nwere ike ịgụkwu gbasara isiokwu a na akwụkwọ ahụ. .
Ọ bụrụ na ịchọrọ ịkọrọ ndị na-ege ntị na-asụ Bekee akụkọ a, biko jiri njikọ ntụgharị asụsụ: Yuri Minaev. .
isi: www.habr.com
