Ծանոթանալ PVS-Studio ստատիկ վերլուծիչին միջավայրում C++ ծրագրեր մշակելիս Linux

Ծանոթանալ PVS-Studio ստատիկ վերլուծիչին միջավայրում C++ ծրագրեր մշակելիս LinuxPVS-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-studio

PVS-Studio-ն տեղադրման փաթեթից տեղադրելու համար կարող եք օգտագործել gdebi կոմունալը.

sudo gdebi pvs-studio-VERSION.deb

Տեղադրման գործընթացը ավելի մանրամասն նկարագրված է բաժնում «PVS-Studio-ի տեղադրում և թարմացում Linux» փաստաթղթեր։ Այնտեղ կարող եք նաև գտնել տեղեկություններ այն համակարգերի մասին, որոնք հիմնված չեն Debian.

Տեղադրվելուց հետո դուք պետք է մուտքագրեք լիցենզիայի տվյալները: Դա անելու համար օգտագործեք հրամանը

pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]

Որտեղ ԱՆՈՒՆԸ и KEY – անունը, որով գրանցված է լիցենզիան և լիցենզիայի բանալին: Ընտրովի պարամետր -o թույլ է տալիս նշել այն ուղին, որտեղ կստեղծվի լիցենզիայի ֆայլը: Լռելյայնորեն այն պահվում է գրացուցակում ~/.config/PVS-Studio/.

Դուք կարող եք ստանալ փորձնական բանալին էջում »Ներբեռնեք և փորձեք PVS-Studio-ն»:

Ծրագրի ստուգում

Անալիզատորը տեղադրելուց հետո կարող եք սկսել ստուգել նախագծերը: Դա անելու երկու հիմնական եղանակ կա.

  1. Կազմման մոնիտորինգ;
  2. Գործարկեք կառուցման գործընթացում անմիջապես կառուցման համակարգից:

Եկեք նախ նայենք առաջին մեթոդին։ Մոնիթորինգը սկսելու համար 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): Կառուցման շատ համակարգեր թույլ են տալիս արտահանել կոմպիլյատորի կանչի հրամաններ, կամ կարող եք օգտագործել կոմունալ ծրագիրը BEAR. Այս դեպքում դուք կարող եք սկսել վերլուծությունը հրամանով

pvs-studio-analyzer analyze –f /path/to/compile_commands.json

Պետք է նշել, որ անալիզատորը ճանաչում է օգտագործվող կոմպիլյատորին իր գործարկվող ֆայլի անունով։ Եթե ​​ստուգելիս ստանում եք «Կոմպիլացիոն միավորներ չեն գտնվել» սխալը, փորձեք նշել ձեր կոմպիլյատորի անունը պարամետրի միջոցով: -կազմող կամ – գ:

pvs-studio-analyzer analyze -c MyCompiler

Դա կարող է անհրաժեշտ լինել ոչ ստանդարտ գործարկվող ֆայլերի անուններով կոմպիլյատորների խաչաձև կոմպիլյատորների և օգտագործման ժամանակ:

Ի լրումն մոնիտորինգի ռեժիմում աշխատելու, դուք կարող եք անալիզատորը ինտեգրել ձեր կառուցման համակարգին կամ IDE-ին: Արդեն կազմաձևված ինտեգրմամբ նախագծերի օրինակներ կարելի է գտնել այստեղ GitHub 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 ստատիկ վերլուծիչին միջավայրում C++ ծրագրեր մշակելիս Linux

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

Ծանոթանալ PVS-Studio ստատիկ վերլուծիչին միջավայրում C++ ծրագրեր մշակելիս Linux

Կտտացրեք սյունակում գտնվող ախտորոշիչ համարին Կոդ կբացի այս ախտորոշումը նկարագրող փաստաթղթեր:

Անալիզատորի ձգանների ճնշում

Ստատիկ անալիզատորով կոդը ստուգելիս հնարավոր են կեղծ դրական կամ պարզապես անցանկալի հաղորդագրություններ (աղմուկ): PVS-Studio-ն տրամադրում է նման նախազգուշացումները ճնշելու մեխանիզմներ: Գործարկիչները անհատապես ճնշելու համար կարող եք օգտագործել փաստաթղթերի բաժնում նկարագրված մեթոդներից մեկը:Կեղծ ահազանգերի ճնշում»:

Բացի այդ, հին ծածկագիրը վերլուծելիս կարող է անհրաժեշտ լինել զանգվածաբար ճնշել բոլոր հաղորդագրությունները: Որպես կանոն, դա անհրաժեշտ է միայն գոյություն ունեցող կոդերի բազայում ավելացված կոդը ստուգելու համար: Դա անելու համար օգտագործեք պարամետրը ճնշել կոմունալ pvs-studio-անալիզատոր.

Դուք կարող եք զանգվածաբար ճնշել հաղորդագրությունները զեկույցում հետևյալ հրամանով.

pvs-studio-analyzer suppress /path/to/report.log

Սեղմված հաղորդագրությունների մասին տեղեկատվությունը պահվում է ֆայլում suppress_base.json, որը գտնվում է նախագծի կողքին։ Հետագա ստուգումների ժամանակ նման հաղորդագրությունները բացառվում են զեկույցից:

Այս մեխանիզմը ավելի մանրամասն նկարագրված է փաստաթղթերում այստեղ.

Ամփոփում

Սա PVS-Studio վերլուծիչի օգտագործման համառոտ ներածություն էր LinuxՀուսով եմ՝ սա օգտակար էր և պատասխանեց ձեր ամենահաճախ տրվող հարցերից մի քանիսին։ Այս թեմայի մասին ավելին կարող եք կարդալ փաստաթղթերում։ այստեղ.

Ծանոթանալ PVS-Studio ստատիկ վերլուծիչին միջավայրում C++ ծրագրեր մշակելիս Linux

Եթե ​​ցանկանում եք կիսվել այս հոդվածով անգլիախոս լսարանի հետ, խնդրում ենք օգտագործել թարգմանության հղումը՝ Յուրի Մինաև: Սկսել C++ ծրագրավորման համար նախատեսված PVS-Studio ստատիկ վերլուծիչի հետ Linux.

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster