Otklanjanje pogrešaka
Možete koristiti otklanjivače pogrešaka za:
- Debugiranje izvršnih binarnih datoteka - GNU Symbolic Debugger (GDB), Microsoft Console Debugger (CDB) i otklanjanje pogrešaka projekta virtualne mašine niske razine (LLVM), LLDB.
- Otklanjanje pogrešaka u QML i Java kodu te u aplikacijama za e Qt Quick - otklanjač pogrešaka za QML/JavaScript.
- Debugiranje izvornog koda Pythona - PDB.
Postavljanje otklanjivača pogrešaka
Qt Creator automatski odabire odgovarajući otklanjivač pogrešaka za svaki komplet među onima pronađenima na vašem sustavu. Možete odabrati drugi komplet. Da biste specificirali otklanjivač pogrešaka i kompajler koji ćete koristiti za svaki komplet, idite na Preferences > Kits.

Debugger morate postaviti samo ako automatska postavka ne uspije jer nedostaje debugger (na primjer, sami morate instalirati CDB debugger na sustavu Windows) ili jer Qt Creator ne podržava instaliranu verziju. Na primjer, kada na vašem sustavu nije instaliran GDB ili je instalirana verzija zastarjela, a vi umjesto toga želite koristiti lokalno instaliranu zamjenu.
Da biste promijenili otklonitelj u automatski otkrivenom kompletu, idite na Postavke > Kits > Clone kako biste stvorili kopiju kompleta i promijenili parametre u kloniranom kompletu. Obavezno omogućite klonirani komplet za svoj projekt.
Ako se otklanjivač pogrešaka koji želite koristiti ne otkrije automatski, idite na Postavke > Kits > Debuggers > Add kako biste ga dodali.

Da biste koristili alate za otklanjanje pogrešaka za Windows, morate ih instalirati. Po želji, možete postaviti Microsoft Symbol Server ako trebate simboličke informacije za Microsoftove module koje se ne nalaze lokalno.
Za više informacija pogledajte podržane otklanjivače pogrešaka i staze CDB-a.
Pokretanje otklanjivača pogrešaka
Debugeri rade u različitim načinima rada ovisno o tome gdje i kako pokrenete i pokrenete proces pod istragom. Neki su načini rada dostupni samo za određeni operativni sustav ili platformu:
- Pokretanje iznutra za otklanjanje pogrešaka aplikacija razvijenih unutar Qt Creator-a, kao što je aplikacija temeljena na Qt Widgets u. Ovo je zadani način pokretanja za većinu projekata, uključujući sve projekte koji koriste desktop verziju Qt-a i projekte u čistom C++-u.
- Pokretanje izvana za pokretanje i otklanjanje pogrešaka procesa bez odgovarajuće konfiguracije Qt Creator projekta, bilo lokalno ili na udaljenom računalu.
- Prikači se na procese za otklanjanje pogrešaka koji su već pokrenuti i rade izvan Qt Creator, bilo lokalno ili na udaljenom računalu.
- Core za otklanjanje pogrešaka srušenih procesa na Unixu.
- Post-mortem za otklanjanje pogrešaka u srušenim procesima na Windowsu.
Općenito, tipka F5 i gumb Pokreni ( Start Debugging of Startup Project ) pokreću način rada koji odgovara kontekstu. Tako se za C++ aplikaciju koja koristi MinGW alatni lanac namijenjen desktopu Windows pokreće GDB mehanizam u načinu pokretanja interne sesije (start internal mode). Za QML aplikaciju koja koristi C++ dodatke (plugins), pokreće se mješoviti QML/C++ mehanizam, pri čemu GDB i GDB server za daljinsko otklanjanje pogrešaka upravljaju C++ dijelovima.
Promijenite parametre konfiguracije pokretanja (kao što je Run in Terminal) u postavkama pokretanja projekta ili odaberite opcije iz izbornika Debug > Start Debugging kako biste odabrali druge načine rada.
GDB načini rada
GDB otklanjivač pogrešaka radi u različitim načinima rada kako bi se prilagodio raznolikosti podržanih platformi i okruženja:
- Jednostavan način otklanja pogrešaka kod lokalno pokrenutih procesa kojima nije potreban unos u konzolu.
- Terminalni način rada otklanja greške u lokalno pokrenutim procesima kojima je potrebna konzola.
- Qt CreatorNačin prikačivanja otklanja greške u lokalnim procesima pokrenutima izvan GDB-a.
- Core način otklanja greške u core datotekama generiranim pri padu programa.
- Daljinski način rada komunicira s GDB poslužiteljem koji radi na Linuxu.
Zaustavljanje aplikacija
Možete prekinuti aktivnu aplikaciju prije nego što završi ili da biste saznali zašto aplikacija ne radi ispravno. Postavite prekidne točke kako biste zaustavili aplikaciju za pregled i promjenu varijabli, postavljanje novih prekidnih točaka ili uklanjanje starih, a zatim nastavite s izvršavanjem aplikacije.
Jednom kada aplikacija počne raditi pod kontrolom otklanjivača pogrešaka, ona se ponaša i radi kao i obično.
Da biste prekinuli radnu C++ aplikaciju, idite na Debug > Interrupt. Debugger automatski prekida aplikaciju kada dođe do prekidne točke.
Kada se aplikacija zaustavi, Qt Creator:
- Prikuplja podatke koji predstavljaju pozivni niz na trenutnoj poziciji aplikacije.
- Prikazuje sadržaj lokalnih varijabli.
- Ispituje izraze.
- Ažurira prikaze Registra, Modula i Raščlanjivača ako otklanjate greške u aplikacijama temeljenim na C++.
Možete pregledavati i mijenjati varijable, postavljati ili uklanjati prekide, a zatim nastaviti izvršavanje aplikacije.
Pregledavanje podataka
Kada se aplikacija zaustavi, možete pregledati određene podatke u otklanjivaču pogrešaka. Dostupnost podataka ovisi o postavkama kompajlera pri kompajliranju aplikacije i o točnoj lokaciji na kojoj se aplikacija zaustavlja.
Neočekivani događaji nazivaju se iznimkama i otklanjivač pogrešaka može zaustaviti aplikaciju kada se pojave. Odlazak na lokaciju u kodu gdje se iznimka dogodila pomaže vam istražiti problem i pronaći načine za njegovo rješavanje.
Ako imate varijablu koja prikazuje tekst, ali aplikacija ga ne prikazuje ispravno, vaši bi podaci mogli biti netočni ili bi kod koji postavlja tekst za prikaz mogao nešto raditi pogrešno. Možete korak po korak prolaziti kroz kod i ispitivati promjene varijable kako biste otkrili gdje se pogreška događa.
Sljedeći videozapis prikazuje kako ispitati vrijednosti varijabli:
Daljinsko otklanjanje pogrešaka
Qt Creator omogućuje jednostavno udaljeno otklanjanje pogrešaka. U uobičajenom slučaju, kada udaljeni računalo već ima instaliran debug poslužitelj poput GDBservera i postavljeno je udaljeno pokretanje aplikacije, što radi odabirom gumba Run (ili Ctrl+R), otklanjanje pogrešaka može se pokrenuti odabirom gumba Debug (ili F5).
U tom slučaju, Qt Creator automatski pokreće i povezuje poslužitelj za otklanjanje pogrešaka i aplikaciju na udaljenom računalu te stvarni otklanjač pogrešaka na razvojnom hostu u ispravnom redoslijedu.
Za neke iznimne slučajeve u kojima ova potpuno automatizirana postavka i izvršavanje daljinskog otklanjanja pogrešaka nisu mogući, Qt Creator nudi poluautomatska rješenja, pogledajte Otklanjanje pogrešaka na daljinu pomoću GDB-a i Otklanjanje pogrešaka na daljinu pomoću CDB-a.
Korištenje pomoćnika za otklanjanje pogrešaka
Kako bi prikazao složene strukture, kao što su QObjects ili asocijativni kontejneri, na jasan i sažet način, Qt Creator koristi Python skripte koje se nazivaju pomoćnici za otklanjanje pogrešaka.
Qt Creator dolazi s pomoćnicima za otklanjanje pogrešaka za više od 200 najpopularnijih Qt klasa, standardnih C++ spremnika i pametnih pokazivača, čime se izravno zadovoljavaju uobičajene potrebe programera C++ aplikacija.
Možete prilagoditi i dodati pomoćnike za otklanjanje pogrešaka.
QML i Qt Quick
Prilikom otklanjanja pogrešaka u Qt Quick aplikaciji možete pregledati stanje aplikacije dok otklanjate pogreške u JavaScript funkcijama. Možete postaviti prekide, pregledati trag poziva i ispitati lokalne varijable i izraze. Dok aplikacija radi, možete pregledati QML objekte i korisničke sučelje, kao i izvršavati JavaScript izraze.
Za više informacija pogledajte odjeljak Debugging Qt Quick projects i vodič Tutorial: Qt Quick debugging.
Vidi također : Uvodnik: Debugging C++, Kako: Debugging, Debugeri, Debuger i Setovi.
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.