Rastrejador de depuració
Aquesta pestanya us permet inspeccionar l'estat de les variables en el moment en què s'executa el codi. Això pot ser molt útil per arreglar un script que ha deixat de funcionar o simplement durant la fase de depuració.

Per fer servir la funcionalitat de depuració, cal que col·loqueu una instrucció de depuració dins del codi amb la sintaxi següent: debug(parameter : text); quan el codi es processa i s'arriba a la instrucció debug, es crea una entrada a la pestanya Rastrejador de depuració, amb el contingut del paràmetre com a títol i, a sota, una estructura de totes les variables disponibles en aquell moment amb els seus valors actuals.
El tauler de Ninext ha d'estar obert: amb el tauler tancat, els punts de depuració assolits no es registren. La pestanya Rastrejador de depuració, en canvi, no cal que estigui en primer pla.
Per provar els exemples d'aquesta pàgina, enganxeu-los a la Consola i executeu-los: el Rastrejador de depuració mostra de seguida els seus punts de depuració. La paperera, a la part superior dreta del Rastrejador, buida la llista.
Nota: podeu afegir a la cadena de text qualsevol variable que us interessi especialment per veure'n el valor a l'instant a la pestanya Rastrejador de depuració, però assegureu-vos que en sigui de tipus text! (per exemple, debug("Debug point 1 : " + Variable1); )
Si observem de prop la pestanya, veurem que cada vegada que s'executa la instrucció debug es crea una línia nova.
Aquesta línia conté el nom del punt de depuració, que és el text passat com a paràmetre a la funció debug, per exemple: debug("my debug point").
Al començament de la línia també es mostra el temps transcorregut des de la línia de depuració anterior. Això ajuda a avaluar el rendiment del codi (vegeu més avall). La primera línia sempre té el valor «start».
Aquesta línia de depuració conté al seu torn una línia per cada variable visible en aquell punt de l'script: les variables declarades abans de la instrucció debug, la variable d'un bucle, i fins i tot la que s'està declarant, que aleshores val «void». Cada línia de variable inclou el nom, el tipus, el valor i un fragment del codi on es declara la variable.

Desplegar, copiar, obrir
Els valors es mostren com a la Consola:
- una llista, un registre, un objecte, una referència o un text que conté JSON es desplega amb un clic a la seva fletxa;
- en passar el ratolí per sobre d'una línia apareix un botó que en copia el valor; a la línia del punt de depuració, copia tota la traça;
- un valor subratllat designa un registre: un clic l'obre a Ninox.
Ús dins de bucles
Col·locar un debug dins d'un bucle us permet veure l'estat de les variables a cada iteració del bucle. També podeu veure el temps dedicat a cada iteració. A l'exemple següent, el retard es manté la majoria de vegades per sota d'1 ms.
let a := select Customer
let d := for i in a do
debug("for each customer");
i.'first name' + " " + i.'last name';
end;
debug("all customers");
d;
Però si hi afegim una instrucció costosa en temps d'execució, com ara la instrucció «select», veurem que el temps entre iteracions augmenta considerablement.
let a := select Customer
let d := for i in a do
let e := select Invoice where Customer = i;
debug("for each customer");
i.'first name' + " " + i.'last name' + " " + sum(e.TOTAL);
end;
debug("all customers");
d;
Col·locant una instrucció debug abans i després d'un bloc d'script, podeu mesurar el temps total d'execució de l'script:
debug("start of script");
let a := select Customer
let d := for i in a do
i.'first name' + " " + i.'last name';
end;
debug("end of script");
d;
