PVS-Studio-ն աջակցում է C, C++, C# և Java լեզուներով գրված նախագծերի վերլուծությանը: Վերլուծիչը կարող է օգտագործվել համակարգերի վրա: Windows, Linux и macOSԱյս հոդվածում կքննարկվի C և C++ լեզուներով գրված կոդի վերլուծությունը միջավայրում։ Linux.
Տեղակայում
Տեղադրեք PVS-Studio-ն հետևյալ հասցեով՝ Linux Դա անելու մի քանի եղանակ կա՝ կախված բաշխման տեսակից: Ամենահարմար և նախընտրելի մեթոդը պահոց օգտագործելն է, քանի որ դա թույլ է տալիս ավտոմատ կերպով թարմացնել վերլուծիչը, երբ թողարկվում են նոր տարբերակներ: Երկրորդ տարբերակը տեղադրման փաթեթի օգտագործումն է, որը կարելի է ներբեռնել: .
Տեղադրման համար անհրաժեշտ հրամանները կախված են բաշխումից։ Linux, որը դուք օգտագործում եք։ Օրինակ՝ համակարգերի համար, որոնք հիմնված են 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-studioPVS-Studio-ն տեղադրման փաթեթից տեղադրելու համար կարող եք օգտագործել gdebi կոմունալը.
sudo gdebi pvs-studio-VERSION.debՏեղադրման գործընթացը ավելի մանրամասն նկարագրված է բաժնում «» փաստաթղթեր։ Այնտեղ կարող եք նաև գտնել տեղեկություններ այն համակարգերի մասին, որոնք հիմնված չեն Debian.
Տեղադրվելուց հետո դուք պետք է մուտքագրեք լիցենզիայի տվյալները: Դա անելու համար օգտագործեք հրամանը
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]Որտեղ ԱՆՈՒՆԸ и KEY – անունը, որով գրանցված է լիցենզիան և լիցենզիայի բանալին: Ընտրովի պարամետր -o թույլ է տալիս նշել այն ուղին, որտեղ կստեղծվի լիցենզիայի ֆայլը: Լռելյայնորեն այն պահվում է գրացուցակում ~/.config/PVS-Studio/.
Դուք կարող եք ստանալ փորձնական բանալին էջում »»:
Ծրագրի ստուգում
Անալիզատորը տեղադրելուց հետո կարող եք սկսել ստուգել նախագծերը: Դա անելու երկու հիմնական եղանակ կա.
- Կազմման մոնիտորինգ;
- Գործարկեք կառուցման գործընթացում անմիջապես կառուցման համակարգից:
Եկեք նախ նայենք առաջին մեթոդին։ Մոնիթորինգը սկսելու համար Linux, ձեզ անհրաժեշտ կլինի կոմունալ ծառայություն . Անալիզատորն օգտագործում է այն տեղեկություններ հավաքելու համար, թե որ գործընթացներն են գործարկվել նախագծի կառուցման ընթացքում:
Գործարկումն իրականացվում է հետևյալ հրամանով.
pvs-studio-analyzer trace -- makeԱյս օրինակը կառուցման համար օգտագործում է make, բայց կատարել կանչը կարող է փոխարինվել ցանկացած այլ հրամանով, որը դուք օգտագործում եք build-ը սկսելու համար: Հրամանի տողի պարամետրերը կարող են փոխանցվել նրան սովորական եղանակով:
Կառուցվելուց հետո strace-ը կստեղծի ֆայլ, որը անալիզատորը կօգտագործի աղբյուրի կոդը ստուգելու համար: Դուք կարող եք սկսել վերլուծությունը հրամանով
pvs-studio-analyzer analyze -o /path/to/project.logԱրդյունքը կլինի կոդավորված ֆայլ՝ արդյունքներով, որը կարող եք փոխարկել աջակցվող ձևաչափերից մեկին: Մենք կանդրադառնանք հաշվետվությունների հետ աշխատելուն հաջորդ բաժնում:
Բացի strace-ից, վերլուծությունը կարող է իրականացվել նաև ֆայլի հիման վրա compile_commands.json (JSON Compilation Database): Կառուցման շատ համակարգեր թույլ են տալիս արտահանել կոմպիլյատորի կանչի հրամաններ, կամ կարող եք օգտագործել կոմունալ ծրագիրը . Այս դեպքում դուք կարող եք սկսել վերլուծությունը հրամանով
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonՊետք է նշել, որ անալիզատորը ճանաչում է օգտագործվող կոմպիլյատորին իր գործարկվող ֆայլի անունով։ Եթե ստուգելիս ստանում եք «Կոմպիլացիոն միավորներ չեն գտնվել» սխալը, փորձեք նշել ձեր կոմպիլյատորի անունը պարամետրի միջոցով: -կազմող կամ – գ:
pvs-studio-analyzer analyze -c MyCompilerԴա կարող է անհրաժեշտ լինել ոչ ստանդարտ գործարկվող ֆայլերի անուններով կոմպիլյատորների խաչաձև կոմպիլյատորների և օգտագործման ժամանակ:
Ի լրումն մոնիտորինգի ռեժիմում աշխատելու, դուք կարող եք անալիզատորը ինտեգրել ձեր կառուցման համակարգին կամ IDE-ին: Արդեն կազմաձևված ինտեգրմամբ նախագծերի օրինակներ կարելի է գտնել այստեղ PVS_Studio պահեստում.
Վերլուծությունը կատարելու վերաբերյալ ավելի մանրամասն հրահանգները կարող եք գտնել ստորև։ Linux տես ներս .
Աշխատեք հաշվետվությունների հետ
Դիզայնը ստուգելուց հետո անալիզատորը ստեղծում է կոդավորված հաշվետվություն: Այն աջակցվող ձևաչափերից մեկին փոխարկելու համար դուք պետք է օգտագործեք կոմունալ ծրագիրը լոգ-փոխարկիչ, որը տեղադրված է PVS-Studio-ով։
Կոմունալն աջակցում է հետևյալ ձևաչափերին.
- xml – հարմար ձևաչափ վերլուծության արդյունքների լրացուցիչ մշակման համար, որն աջակցվում է SonarQube-ի համար նախատեսված հավելվածով;
- csv – տեքստային ձևաչափ, որը նախատեսված է աղյուսակային տվյալների ներկայացման համար;
- errorfile – gcc և clang ելքային ձևաչափ;
- tasklist – սխալի ձևաչափ, որը կարող է բացվել QtCreator-ում;
- html – html հաշվետվություն՝ վերլուծության արդյունքների համառոտ նկարագրությամբ;
- fullhtml – html հաշվետվություն՝ վերլուծության արդյունքները տարբեր պարամետրերով դասավորելով և սկզբնական կոդի միջոցով նավարկմամբ:
Զեկույցը դիտելու համար ամենահարմարն է fullhtml ձևաչափը, քանի որ այն թույլ է տալիս անցնել սկզբնական կոդի այն գիծը, որտեղ տեղի է ունեցել նախազգուշացումը: Հետևյալ հրամանը թույլ է տալիս վերափոխել անալիզատորի հաշվետվությունը այս ձևաչափի.
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dirՀրամանը կատարելուց հետո կստեղծվի գրացուցակ /path/report_dir, որը կպարունակի հաշվետվության ֆայլերը:
Պտտեցնել վնիմանիե և կլյուչը -a. Այն թույլ է տալիս նշել, թե որ նախազգուշացումները պետք է ներառվեն զեկույցում: Սա հարմար է, եթե անալիզատորի ելքը զտելու անհրաժեշտություն կա: Վերոնշյալ հրամանը կստեղծի զեկույց, որը կպարունակի միայն նախազգուշացումներ առաջին և երկրորդ վստահության մակարդակների ընդհանուր վերլուծության խմբից (Բարձր и Միջին).
Առաջնային հաշվետվություն.

Սեղմելով բջիջի մեջ Որտեղից հաղորդագրություններ, կարող եք անցնել կոդերի համապատասխան տող.

Կտտացրեք սյունակում գտնվող ախտորոշիչ համարին Կոդ կբացի այս ախտորոշումը նկարագրող փաստաթղթեր:
Անալիզատորի ձգանների ճնշում
Ստատիկ անալիզատորով կոդը ստուգելիս հնարավոր են կեղծ դրական կամ պարզապես անցանկալի հաղորդագրություններ (աղմուկ): PVS-Studio-ն տրամադրում է նման նախազգուշացումները ճնշելու մեխանիզմներ: Գործարկիչները անհատապես ճնշելու համար կարող եք օգտագործել փաստաթղթերի բաժնում նկարագրված մեթոդներից մեկը:»:
Բացի այդ, հին ծածկագիրը վերլուծելիս կարող է անհրաժեշտ լինել զանգվածաբար ճնշել բոլոր հաղորդագրությունները: Որպես կանոն, դա անհրաժեշտ է միայն գոյություն ունեցող կոդերի բազայում ավելացված կոդը ստուգելու համար: Դա անելու համար օգտագործեք պարամետրը ճնշել կոմունալ pvs-studio-անալիզատոր.
Դուք կարող եք զանգվածաբար ճնշել հաղորդագրությունները զեկույցում հետևյալ հրամանով.
pvs-studio-analyzer suppress /path/to/report.logՍեղմված հաղորդագրությունների մասին տեղեկատվությունը պահվում է ֆայլում suppress_base.json, որը գտնվում է նախագծի կողքին։ Հետագա ստուգումների ժամանակ նման հաղորդագրությունները բացառվում են զեկույցից:
Այս մեխանիզմը ավելի մանրամասն նկարագրված է փաստաթղթերում .
Ամփոփում
Սա PVS-Studio վերլուծիչի օգտագործման համառոտ ներածություն էր LinuxՀուսով եմ՝ սա օգտակար էր և պատասխանեց ձեր ամենահաճախ տրվող հարցերից մի քանիսին։ Այս թեմայի մասին ավելին կարող եք կարդալ փաստաթղթերում։ .
Եթե ցանկանում եք կիսվել այս հոդվածով անգլիախոս լսարանի հետ, խնդրում ենք օգտագործել թարգմանության հղումը՝ Յուրի Մինաև: .
Source: www.habr.com
