Studio biedt veel foutopsporingshulpmiddelen en workflows die vaak worden aangetroffen in geïntegreerde ontwikkelomgevingen (IDE's). Deze helpen je om fouten in scripts te inspecteren en op te lossen terwijl ze worden uitgevoerd.
Breakpoint-foutopsporing
Breakpoints zijn controlepunten die de uitvoering van je scripts op specifieke regels pauzeren of "onderbreken". Je kunt de pauzes gebruiken om je spel te inspecteren en te debuggen, toezicht te houden op variabelen en de aanroepstack te inspecteren. Breakpoints zijn een van de meest effectieve manieren om functies te debuggen, dus ze zijn een van de belangrijkste foutopsporingshulpmiddelen.
Beheer
In de Script Editor kun je invoegen verschillende soorten breakpoints en de configuratie van een breakpoint op elk moment bewerken, ook tijdens playtest-sessies. Als je breakpoints tijdens een playtest-sessie bewerkt, blijven de bewerkingen bestaan, zelfs nadat je deze hebt beëindigd. Je kunt ook een breakpoint bewerken dat actief je playtest-sessie pauzeert, maar wijzigingen worden pas toegepast tijdens de volgende playtest-sessie.
Invoegen
Breakpoints hebben meerdere variaties en kunnen op elke regel van uitvoerbare code worden ingevoegd, zoals volgt:
Om een standaard breakpoint op een regel code in te voegen, klik je in de marge direct rechts van het regelnummer. Alternatief kun je met de rechtermuisknop in de marge klikken en Invoegen Breakpoint selecteren. Het breakpoint-pictogram verschijnt als een rode cirkel.

Uitschakelen
Om een breakpoint tijdelijk uit te schakelen zonder het te verwijderen, gebruik je een van de volgende workflows:
- Klik op het pictogram van het breakpoint.
- Klik met de rechtermuisknop op het pictogram van het breakpoint en selecteer Breakpoint Uitschakelen.
- Bewerk het breakpoint en schakel het Ingeschakeld selectievakje uit.
Een uitgeschakeld breakpoint verschijnt als een holle versie van het ingeschakelde pictogram, bijvoorbeeld een holle cirkel voor een uitgeschakeld standaard breakpoint, of een holle diamant voor een uitgeschakeld logpoint.


Verwijderen
Om een breakpoint te verwijderen, klik je met de middelste muisknop op het pictogram of klik je met de rechtermuisknop op het pictogram en selecteer je Breakpoint Verwijderen.
Bewerken
Je kunt de configuratie van een breakpoint op elk moment bewerken, ook tijdens playtest-sessies. Als je breakpoints tijdens een playtest-sessie bewerkt, blijven de bewerkingen bestaan, zelfs nadat je deze hebt beëindigd. Je kunt ook een breakpoint bewerken dat actief je playtest-sessie pauzeert, maar wijzigingen worden pas toegepast tijdens de volgende playtest-sessie.
Om een breakpoint te bewerken:
Klik met de rechtermuisknop op het pictogram van het breakpoint en selecteer Breakpoint Bewerken.
In het Breakpoint Bewerken venster, configureer je het breakpoint zoals gewenst. Je kunt deze configuraties combineren om het beste aan je foutopsporingsbehoeften te voldoen.
Optie Beschrijving Voorwaarde Een optionele expressie die bepaalt of het breakpoint wordt geactiveerd. Als de voorwaarde leeg is, wordt het breakpoint altijd geactiveerd. Als de voorwaarde bestaat, wordt het breakpoint een voorwaardelijk breakpoint en wordt het alleen geactiveerd als de voorwaarde waar is. Bijvoorbeeld, als je wilt dat het breakpoint alleen wordt geactiveerd als de variabele var gelijk is aan 10, stel je de voorwaarde in op var == 10. Log bericht Een expressie die naar het Output venster wordt afgedrukt wanneer het breakpoint wordt geraakt. Het formaat van het logbericht is hetzelfde als dat van een print() statement. Stel bijvoorbeeld het logbericht in als "De waarde van var:", var om hetzelfde bericht uit te voeren als print("De waarde van var:", var). Voortzetten uitvoering Bepaalt of het breakpoint het script pauzeert als het wordt geactiveerd. Deze optie is standaard uitgeschakeld, tenzij het ingevoegde breakpoint een logpoint is. Verwijder Breakpoint bij Hit Als aangevinkt, verwijdert het breakpoint zichzelf automatisch na de eerste playtest-sessie, waardoor het effectief een tijdelijk breakpoint wordt. Trigger Bij De context van een breakpoint bepaalt of het moet worden geactiveerd op de Client (client-side scripts), Server (server-side scripts) of Bewerken (debugging plugin scripts). Als je Aangepaste Context kiest, geeft het venster de huidige triggercontexten aan.
Workflow
De typische workflow voor breakpoint-foutopsporing is als volgt:
Open het script dat je wilt debuggen en voeg breakpoints in op de regels code die je wilt onderzoeken.
Start vanuit de mezzanine van Studio een playtest om te beginnen met debuggen.

Wanneer het script een breakpoint raakt, pauzeert de playtest-sessie, tenzij dat breakpoint is geconfigureerd om de uitvoering voort te zetten. Een gele pijl boven het breakpoint geeft aan welke regel code als volgende wordt uitgevoerd.

Terwijl het script pauzeert, inspecteer je het Breakpoints venster, Toezicht venster, Aanroepstack venster, Output venster en Script Editor om informatie te vinden over variabele waarden en functie-uitvoeringen.
Om de uitvoering van de code na het raken van een breakpoint voort te zetten, klik je op Scripts Hervatten in de mezzanine.

Je kunt ook code regel voor regel uitvoeren met de stapknoppen in de mezzanine:

Actie Sneltoets Beschrijving Stap In F11 De Stap In knop verplaatst de debugger naar de code van de functie op de huidige regel. Als er geen functie op de huidige regel is, verplaatst de debugger zich naar de volgende regel. Stap Over F10 De Stap Over knop verplaatst de debugger naar de volgende regel code, zonder in functies te gaan. Stap Uit ShiftF11 De Stap Uit knop verplaatst de debugger uit de huidige functie en naar de volgende regel code na de functieaanroep. Als de huidige regel zich niet binnen een functie bevindt, verplaatst de debugger zich naar de volgende regel. Wanneer je klaar bent met debuggen in de huidige sessie, klik je op de Stop knop.

Monitoring
Studio bevat meerdere vensters en hulpmiddelen om variabele waarden en functie-uitvoeringen te monitoren tijdens het debuggen. Met deze informatie kun je de oorzaak van de meeste problemen in je scripts vinden.

Breakpoints
Het Breakpoints venster is een uniforme weergave die alle breakpoints binnen alle scripts toont. Om het te openen, klik je op Breakpoints in de werkbalk van het Script tabblad van Studio, of navigeer naar het Venster ⟩ Debug menu en schakel Breakpoints in.
In het venster worden de kolommen Script en Regel altijd weergegeven, en je kunt andere configuratie kolommen in- of uitschakelen via het ⋮ menu in de rechterbovenhoek. Binnen de Script kolom kun je met de rechtermuisknop op een breakpoint klikken om een optiesmenu te onthullen om te bewerken, uitschakelen/inschakelen, verwijderen of naar de regel van het breakpoint binnen het script te springen.

Tijdens een debug-sessie toont de meest linkse kolom (x3) wat de meerdere contexten (Client, Server, Bewerken) voor het breakpoint aangeeft. Door een tak van een breakpoint uit te vouwen, kun je vervolgens op het pictogram naast een specifieke context klikken om deze voor die context te deactiveren/activeren, zoals het uitschakelen van een breakpoint alleen in de Client context terwijl deze ingeschakeld blijft in de Server context.

Aanroepstack
Het Aanroepstack venster, toegankelijk vanuit de werkbalk van het Script tabblad van Studio of het Venster ⟩ Debug menu, toont welke regel code als volgende zal worden uitgevoerd wanneer de debugger een breakpoint bereikt. Als je functies vanuit andere functies aanroept, geeft het aan van welke regels die functies zijn aangeroepen, zodat je kunt bevestigen of de werkelijke aanroepstroom overeenkomt met de verwachte stroom.


Terwijl het script pauzeert bij breakpoints, gebruik je de stapknoppen in de mezzanine om in, over of uit een functie/regel te stappen zoals beschreven in de workflow.

Toezicht
Het Toezicht venster, toegankelijk vanuit de werkbalk van het Script tabblad van Studio of het Venster ⟩ Debug menu, stelt je in staat om actief variabele en expressiewaarden te bekijken terwijl je door breakpoints stapt.
Het Variabelen tabblad toont informatie over de huidige variabelen in scope, filterbaar door op de knop Alle Scopes in de bovenste balk van het venster te klikken. Het uitbreiden van een tak toont de leden van die variabele of instantie en hun waarden. Je kunt ook elke variabele in de gaten houden door deze dubbel te klikken in de Script Editor, met de rechtermuisknop te klikken en Toevoegen Toezicht uit het pop-upmenu te selecteren.


Script Editor
De debugger is geïntegreerd met de Script Editor. Wanneer je spel pauzeert bij een breakpoint in een script, kun je met de muis over de naam van een variabele zweven om de waarde ervan te zien. Bijvoorbeeld, je kunt de samenstelling van een tabel en de daarin opgenomen sleutels/waarden zien.

Aanvullende foutopsporingshulpmiddelen
Naast de debugger biedt Studio aanvullende foutopsporingshulpmiddelen om problemen en bugs in je spel op te lossen.
Opdrachtbalk
De Opdrachtbalk stelt je in staat om Luau-opdrachten uit te voeren terwijl het spel draait. Het is beschikbaar in Studio via het Venster ⟩ Script menu en in de Ontwikkelaarsconsole.
Ontwikkelaarsconsole
De Ontwikkelaarsconsole biedt een breed scala aan details, waaronder client- en serveruitvoer, geheugengebruik, netwerkprestaties en meer. Om de console te openen tijdens het testen of spelen van een spel, typ je /console in de chat of druk je op F9.
Logbestanden
Wanneer een script afdrukt of fouten in Studio of de speler-app, registreert de app het bericht in een logbestand in het lokale bestandssysteem. Deze bestanden bevinden zich op verschillende plaatsen, afhankelijk van het besturingssysteem.
Windows
Om logbestanden op Windows te openen:
- Open Verkenner.
- Navigeer naar de %LOCALAPPDATA%\Roblox\logs directory.
- Dubbelklik op een log om deze te openen. Logs met dezelfde XXXXX waarde zijn afkomstig van dezelfde Studio-sessie.
Mac
Om logbestanden op Mac te openen:
- Open Finder.
- Selecteer in de menubalk Ga ⟩ Ga naar map....
- Voer in het dialoogvenster ~/Library/Logs/Roblox in.
- Dubbelklik op het resultaat om naar de Roblox logs directory te navigeren.
- Dubbelklik binnen de directory op een log om deze te openen.
iOS
Je kunt iOS-logs verzamelen met een Mac of met een iOS-apparaat.
Om iOS-logbestanden op een Mac te openen:
- Verbind het iOS-apparaat met een Mac.
- Open Finder.
- Navigeer naar Hulpprogramma's en open de Console applicatie.
- Om realtime logs in de Console-applicatie te populeren, selecteer je het iOS-apparaat in de zijbalk, klik je op de Start knop en reproduceer je het probleem op het iOS-apparaat.
- Om gearchiveerde logs in de Console-applicatie te populeren, voer je sudo log collect --device-name "[iOS Device Name]" in de Terminal uit. Zorg ervoor dat er geen apostrofs in de naam van het apparaat staan, anders krijg je mogelijk een foutmelding bij het uitvoeren van de opdracht.
Android
Om logbestanden op Android te openen:
- Navigeer naar Instellingen ⟩ Systeem ⟩ Ontwikkelaarsopties.
- Zet Ontwikkelaarsopties aan.
- Download en installeer op een computer Android Studio.
- Klik in Android Studio op Logcat.
- Verbind het Android-apparaat met de computer om automatisch Logcat met logs te vullen.