Ocjenjivanje izraza
Expressions Za pristup globalnim podacima koji nisu vidljivi u prikazu Lokalnih varijabli ili za izračunavanje vrijednosti aritmetičkih izraza ili poziva funkcija, upotrijebite evaluatore izraza u prikazu Procjena izraza.
Na primjer, ako definirate static int staticVar = 42; u izvornoj datoteci i zatim dodate staticVar kao procijenjenu izraz, trebali biste vidjeti 42 u prikazu kada se otklonivač pogrešaka zaustavi u izvornoj datoteci.
Također možete koristiti evaluatore izraza kao prečace do stavki koje su duboko ugniježđene u stablu lokalnih varijabli.

Dodavanje evaluatora izraza
Da biste dodali evaluatore izraza, povucite izraz iz uređivača koda u prikaz Expressions.
Također možete:
- Dvostruko kliknite u prikazu Expressions ili Locals.
- Odaberite Add New Expression Evaluator iz kontekstnog izbornika.
New Evaluated Expression Unesite izraz u dijalog za evaluaciju izraza:

Skup evaluiranih izraza spremljen je u vašoj sesiji.
Evaluatori izraza ponovno se evaluiraju svaki put kad se promijeni trenutni kadar. Funkcije korištene u izrazima pozivaju se svaki put, čak i ako imaju sporedne učinke.
Napomena: Procjenjivanje izraza je sporo, stoga uklonite procjenjivače izraza nakon upotrebe.
JavaScript izrazi
QML otklanjivač pogrešaka može evaluirati JavaScript izraze.
Izrazi u C-u i C++-u
CDB, GDB i LLDB podržavaju evaluaciju jednostavnih C i C++ izraza, kao što su aritmetički izrazi sastavljeni od jednostavnih vrijednosti i pokazivača.
Ovisno o pozadinskom sustavu i konkretnoj lokaciji, neki se pozivi funkcija mogu evaluirati. CDB je u tom pogledu najograničeniji pozadinski sustav.
Pozivi funkcija
Funkcije se mogu pozvati samo ako su stvarno kompajlirane u deklasiranu izvršnu datoteku ili u biblioteku koju ta datoteka koristi. Ugrađene funkcije, kao što su većina implementacija standardnih spremnika u C++-u ( operator[] ), obično nisu dostupne.
Napomena: Kada izraz sadrži poziv funkcije, može se dogoditi bilo što, uključujući oštećenje stanja aplikacije ili korištenje dozvola aplikacije za izvođenje proizvoljnih radnji.
Sintaksa raspona
Kada koristite GDB ili LLDB kao backend, možete koristiti posebnu sintaksu raspona za prikaz više vrijednosti jednim izrazom. Podizraz oblika foo[a..b] dijeli se na niz pojedinačno evaluiranih izraza foo[a], ..., foo[b].
Složene varijable
Možete proširiti složene varijable tipa struct ili class kako biste prikazali njihove članove. Budući da vidite i vrijednost i tip varijable, možete ispitati i proći kroz nisko-razinski raspored podataka objekta.
Optimizirane izgradnje
Qt CreatorGDB i LLDB, a time i otklonivač pogrešaka jezika C++, također rade za optimizirane izgradnje na Linuxu i macOS-u. Optimizacija može dovesti do promjene redoslijeda instrukcija ili uklanjanja nekih lokalnih varijabli, zbog čega prikazi Locals i Expressions mogu prikazati neočekivane podatke.
GCC
Informacije za otklanjanje pogrešaka iz GCC-a ne sadrže dovoljno informacija o vremenu kada se varijabla inicijalizira. Stoga Qt Creator ne može utvrditi je li sadržaj lokalne varijable stvarni podaci ili početni šum. Ako se QObject pojavi kao neinizicijalizirana, njezina se vrijednost izvještava kao not in scope. Međutim, ne mogu se svi neinizicijalizirani objekti prepoznati kao takvi.
Akcije prikaza izraza
Desnom tipkom miša kliknite na prikaz Expressions i odaberite sljedeće radnje:
- Dodavanje i uklanjanje evaluatora izraza
- Promijeniti format prikaza vrijednosti
- Proširi i sakrij sadržaj prikaza
- Kopirajte sadržaj prikaza ili vrijednosti izraza u međuspremnik
- Otvori sadržaj prikaza u uređivaču
- Otvori uređivač memorije
- Postavi prekide na podacima
- Koristite pomoćnike za otklanjanje pogrešaka
- Prikaži i sakrij alatkice s objašnjenjima u prikazu tijekom otklanjanja pogrešaka
- Automatski dereferencirajte pokazivače
- Sortiraj članove klasa i struktura abecednim redom
- Koristi dinamičku vrstu objekta za prikaz
- Postavite preferencije otklanjanja pogrešaka
Vidi također Kako: Debugiranje, Debugiranje, Debugeri i Debugger.
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.