Analiza koda
Koristite integrirane alate za analizu koda za izvođenje statičke analize koda, otkrivanje curenja memorije, profiliranje korištenja CPU-a i memorije, provjeru pokrivenosti koda i vizualizaciju događaja u tragu.
Korištenje alata za analizu koda
Da biste koristili alat za analizu koda, odaberite ga u izborniku Analyze ili u padajućem izborniku gumba
(Start Debugging of Startup Project). U načinu rada Debug prebacujte se između alata odabirom u izborniku na alatnoj traci otklanjanja pogrešaka.

Povucite prikaze u načinu Debug na nove položaje na zaslonu. Veličina i položaj prikaza spremaju se za buduće sesije. Odaberite View > Views > Reset to Default Layout kako biste vratili prikaze na njihove izvorne veličine i položaje.
Pregled alata za analizu koda
Sljedeća tablica opisuje alate za analizu koda koje možete koristiti u Qt Creator za analizu vašeg koda. Neki su alati ugrađeni u Qt Creator, dok druge možete zasebno instalirati na računalo ili pokretati s poslužitelja.
| Alat | Jezik | Dostupnost | Opis |
|---|---|---|---|
| Axivion Suite | C, C++, C# | Zahtijeva Axivion poslužitelj | Analizirajte kod, arhitekturu, ovisnosti, metrike i smjernice kodiranja. |
| Clang-Tidy i Clazy | C, C++, Objective-C | Ugrađeno | Pronađite dijagnostiku prekršaja stila, nepravilne upotrebe sučelja i problema specifičnih za Qt te primijenite ispravke. |
| Preglednik formata Chrome Trace | Bilo koji | Ugrađeno | Istražite tragove generirane alatima trećih strana u Chrome Trace formatu. |
| Coco | C, C++, C#, QML, Tcl | Potrebna je instalacija | Pronađite netestirani kod, suvišne testove i mrtvi kod. |
| Cppcheck | C, C++ | Potrebna je instalacija | Pronađite neodređeno ponašanje i opasne programerske konstrukcije u C i C++ kodu bez pokretanja aplikacije. |
| Heob | Bilo koji | Potrebna je instalacija (Windows) | Pronađite curenje memorije i prekoračenja buffer-a na Windowsu. |
| Analizator performansi | Bilo koji | Ugrađeno (Linux) | Analizirajte upotrebu CPU-a i memorije aplikacije na Linux desktopu i ugrađenim uređajima. |
| QML Profiler | QML, JavaScript | Ugrađeno | Pronađite uzroke tipičnih problema s performansama u vašim aplikacijama, kao što su usporenost i neispunjavanje zahtjeva. |
| Statičke provjere za QML i JavaScript | QML, JavaScript | Ugrađeno | Pronađite uobičajene probleme u vašem kodu, kao što su sintaksne pogreške, nedostajuća svojstva i neslaganje tipova. |
| Valgrind | Bilo koji | Potrebna je instalacija (Linux, macOS 10.9-11.0, samo za Intel) | Otkrijte curenje memorije, greške u memoriji i probleme s više niti. |
Statička analiza za C i C++
Axivion Suite
Axivion Suite je softverski paket za kontrolu kvalitete poslovne razine koji prati arhitektonsku dosljednost, provodi smjernice kodiranja za cijeli tim i mjeri trendove kvalitete tijekom uzastopnih izdanja. Podržava C, C++ i C#.
Uz Axivion Suite možete:
- Provjerite izvorni kod na potencijalne pogreške tijekom izvođenja.
- Koristiti metrike za generiranje kvantitativnih informacija o unutarnjoj kvaliteti izvornog koda.
- Pokrenuti provjere stila radi usklađenosti s smjernicama za kodiranje.
- Otkrijte duplicirane i slične dijelove koda u izvornoj kodu.
- Prepoznati cikličke ovisnosti na različitim razinama.
- Otkrijte nedostižan kod.
Instalirajte Axivion Suite i omogućite Axivion dodatak u Qt Creator u za pregled rezultata analize, uključujući kršenja, metrike i inlinijske anotacije.
Za više informacija pogledajte:
- Povežite se na Axivion poslužitelje nadzorne ploče
- Lokalna analiza s Axivionom
- Pregledajte rezultate statičke analize koda Axivion
Clang-Tidy i Clazy
Qt Creator uključuje ugrađenu podršku za Clang-Tidy i Clazy, koji su komplementarni alati za statičku analizu koda za C, C++ i Objective-C. Prema zadanim postavkama, dijagnostika se prikazuje u stvarnom vremenu za otvorenu datoteku dok je uređujete. To vam omogućuje održavanje kvalitete i dosljednosti koda bez čekanja na zaseban korak izgradnje.
Clang-Tidy provjerava uobičajene programerske pogreške kao što su kršenja stilskih pravila, neispravna upotreba sučelja i obrasci koji vjerojatno predstavljaju greške. Također nudi automatske popravke za mnoge od problema koje otkrije, uključujući modernizaciju starijeg C++ koda.
Clazy na dijagnostiku Clanga dodaje provjere specifične za Qt. One se kreću od nepotrebne alokacije memorije do zlouporabe Qt API-ja. Clazy također pruža akcije refaktoriranja za ispravljanje nekih od problema koje otkrije.
Za više informacija pogledajte:
- Analizirajte kod pomoću Clang-Tidyja i Clazyja
- Konfigurirajte Clang dijagnostiku
- Postavite globalne postavke za Clang alate
- Specifikacija postavki alata Clang
Cppcheck
Cppcheck je lagan alat za statičku analizu usmjeren na pronalaženje neodređenog ponašanja i opasnih programskih konstrukcija u C i C++ kodu. Analizira izvorni kod bez izgradnje ili pokretanja aplikacije.
Cppcheck traži širok raspon problema, uključujući pristup izvan granica, dereferenciranje null pokazivača, korištenje neiniziciranih varijabli, curenje resursa i sumnjivu aritmetiku cijelih brojeva. Za potpuni popis provjera pogledajte Cppcheck: Popis provjera.
Instalirajte Cppcheck odvojeno i omogućite Cppcheck dodatak u Qt Creator kako biste integrirali rezultate. Cppcheck se automatski pokreće na otvorenim datotekama, a možete ga pokrenuti i ručno na odabranim datotekama putem izbornika Analyze > Cppcheck.
Za više informacija pogledajte Detekcija pogrešaka u C++ kodu pomoću Cppchecka.
QML i JavaScript
Statičke provjere za QML i JavaScript
Uz ugrađeni statički analizator možete pokrenuti statičke provjere na QML i JavaScript kodu u svom projektu kako biste pronašli uobičajene probleme, slično kao i kod korištenja JSLinta.
Provjere otkrivaju sintaksne pogreške, nedostajuća ili pogrešno napisanim svojstva, neslaganje tipova i druge uobičajene pogreške bez potrebe za pokretanjem aplikacije.
Za više informacija pogledajte provjere za JavaScript i QML.
QML Profiler
Qt Creator dolazi s alatom za inspekciju vezanja ( QML Profiler ) za pregled procjena vezanja i obrade signala tijekom izvođenja QML koda. Koristite ga za otkrivanje uskih grla u performansama koja je teško uočiti samo pregledom koda.
QML Profiler bilježi događaje, kao što su obrada signala, evaluacije veza i izvođenje JavaScripta, te ih vizualizira u prikazu vremenske crte. To je korisno za dijagnosticiranje usporenosti i neispitivosti.
Za više informacija pogledajte:
Analiza memorije
Valgrind
Instalirajte Memcheck i Callgrind iz Valgrindovog Tool Suitea i omogućite Valgrind dodatak u aplikaciji Qt Creator kako biste otkrili pogreške u upravljanju memorijom i profilirali izvršavanje funkcija na sustavima Linux i macOS (10.9–11.0, samo za Intel). Alate možete pokrenuti na udaljenom Linux računalu ili uređaju s bilo kojeg razvojnog hosta.
Memcheck pronalazi probleme u upravljanju memorijom, kao što su čitanje ili pisanje u oslobođenu memoriju, korištenje neinizicirane memorije, curenje memorije i neispravna upotreba funkcija za alokaciju. Callgrind bilježi povijest poziva funkcija i statistiku upotrebe predmemorije.
Valgrind alate možete pokrenuti lokalno na razvojnom računalu ili udaljeno na drugom računalu. Možete ih koristiti za analizu i aplikacija za koje ste postavili projekt u Qt Creator i aplikacija za koje nemate projekt.
Za pokretanje alata Valgrind za analizu aplikacije za koju imate projekt, otvorite projekt u Qt Creator i odaberite komplet za pokretanje projekta. Komplet određuje hoće li se alati Valgrind pokretati lokalno ili udaljeno.
Za postavljanje preferencija za Valgrind alate odaberite Preferences > Analyzer > Valgrind. Opće postavke možete nadjačati za svaki projekt u odjeljku Run Settings za taj projekt.
Za više informacija pogledajte:
- Valgrind Memcheck
- Valgrind Callgrind
- Otkrijte curenje memorije pomoću Memchecka
- Pokrenite Valgrind alate na vanjskim aplikacijama
- Postavite Valgrind postavke za projekt
Heob
Na Windowsima instalirajte Heob promatrač hrpe za otkrivanje prekoračenja bufera i curenja memorije.
Heob izaziva pogrešku pristupa memoriji pri prekoračenju bufera i bilježi tragove steka upute koja je uzrokovala problem i alokacije bufera. Rezultate možete vidjeti nakon što Heob normalno završi.
Za više informacija pogledajte:
Profiling i praćenje
Analizator performansi
Na Linuxu koristite Performance Analyzer za analizu CPU-a i upotrebe memorije aplikacije na Linux desktopu i ugrađenim uređajima.
Performance Analyzer koristi alat Perf priložen uz Linux kernel za povremeno snimanje lanca poziva aplikacije i njihovu vizualizaciju u prikazu vremenske crte ili kao flame graf.
Za više informacija pogledajte Performance Analyzer.
Preglednik formata zapisa Chromea
Koristite vizualizator formata zapisa Chromea za pregled događaja iz zapisa Chromea. To je posebno korisno pri pregledavanju velikih datoteka zapisa koje je teško vizualizirati pomoću ugrađenog preglednika zapisa (chrome://tracing).
Više alata za praćenje može generirati informacije o događajima praćenja u Chrome formatu osim alata temeljenih na Chromeu. Pomoću vizualizatora možete se kretati, zumirati i pregledavati događaje u zapisu.
Za više informacija pogledajte:
Pokrivenost koda
Coco
Instalirajte Coco alatni lanac za pokrivenost koda i omogućite Coco dodatak u Qt Creator u za programe u jezicima C, C++, C#, QML i Tcl. Koristite ga, na primjer, za analizu načina na koji aplikacija radi kao dio skupa testova. Koristite rezultate kako biste testove učinili učinkovitijima i potpunijima.
Možete:
- Pronađite neisprobane dijelove koda.
- Pronađite suvišne testove koji se potom mogu ukloniti. Coco može identificirati dijelove izvornog koda koje pokriva test. Može otkriti pokriva li novi test retke u izvornom kodu koje postojeći testovi ne pokrivaju.
- Pronađite mrtvi kod prikazivanjem koda koji se nikada ne izvršava.
- Izračunati optimalan redoslijed izvođenja testova kako bi se maksimizirala pokrivenost testovima pri svakom izvođenju. To je osobito korisno za ručno testiranje.
- Analizirati dvije odvojene verzije aplikacije i usporediti razlike. Time je moguće vidjeti koji su testovi pogođeni izmjenama izvornog koda, kao i dobiti mjeru pokrivenosti testovima zakrpe ili hitne ispravke.
- Mjerite vrijeme izvođenja aplikacija i testova.
Za više informacija pogledajte:
Vidi također Aktivirati komplete za projekt, Kako: Analizirati, Analizatori i Omogućiti i onemogućiti dodatke.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.