Übersicht
Das Masse-Debugger-Werkzeug wurde durch viele neue Funktionen erheblich verbessert, darunter: Echtzeit-Inspektion von Entitätsfragmentdaten, entitätsspezifische Fragmentzugriffs-Breakpoints, Gameplay-Debugger-Integration und verbesserte Prozessor-Inspektion.
Verwenden des Masse-Debuggers
Um den Masse-Debugger zu starten, wählen Sie im Editor Werkzeuge > Debugging > Masse-Debugger aus. Hinweis: Wenn Sie frühere Versionen des Masse-Debuggers verwendet haben, müssen Sie möglicherweise das Layout zurücksetzen, um die neuen Tabs zu sehen (Fenster > Layout zurücksetzen im Masse-Debugger-Fenster).
UI-Workflow
So betrachten Sie Überschneidungen beim Zugang auf Prozessordaten:
Öffnen Sie den Masse-Debugger.
Nutzen Sie den Umgebungswähler, um die Masse-Laufzeitumgebung auszuwählen, die Sie untersuchen möchten.
Öffnen Sie den Prozessoren-Tab (Fenster > Prozessoren).
Suchen Sie den Prozessor, den Sie untersuchen möchten, in der Liste.
Klicken Sie beim Prozessor-Eintrag auf die Schaltfläche Fragmentzugriff anzeigen.
Klicken Sie auf ein Fragment aus der Liste der Queries im erweiterten Prozessor-Eintrag.
Die Farbe der Prozessoren ändert sich basierend auf dem Zugriff der einzelnen Prozessoren. Grün zeigt Lesezugriff (unveränderlich) und Rot Schreibzugriff (veränderlich) an.
So untersuchen Sie Fragmentdaten einer Entität über den Masse-Debugger, wenn eine aktive Umgebung ausgewählt ist:
Öffnen Sie den Entitäten-Tab (Fenster > Entitäten oder nutzen Sie eine der kontextbezogenen Entitäten anzeigen-Schaltflächen in der Debugger-Benutzeroberfläche).
Klicken Sie auf die Dropdown-Liste Fragmente auswählen und prüfen Sie die Fragmente, die Sie untersuchen möchten.
Hinweis: Die Fragmentliste ist kontextbezogen und von der Zusammensetzung der aufgeführten Entitäten abhängig.
Hinweis: Nur Mitgliedsvariablen der ausgewählten Fragmentstrukturen, die als UPROPERTY markiert sind, werden angezeigt. Es sind keine weiteren Editor-Sichtbarkeit-Metadaten erforderlich.
So legen Sie einen Fragment-Schreib-Breakpoint für ein spezifisches Fragment auf einer spezifischen Entität fest:
Zeigen Sie die Fragmentdaten für die gewünschte Entität im Entitäten-Tab an.
Klicken Sie auf die Schaltfläche Schreib-Breakpoint festlegen.
Hinweis: Der Breakpoint wird im EntityIterator-Code für MassExecutionContext::EntitiyIterator ausgelöst. Nur Code, der diesen Iterator oder Wrapper für diesen Iterator verwendet, wird auf diese Weise Breakpoints auslösen. Der ausgelöste Code befindet sich üblicherweise zwei oder drei Ebenen höher im Aufrufstapel.
Um den Breakpoint aus der IDE zu löschen und die Ausführung fortzusetzen, verwenden Sie die Überwachungsfunktion in Ihrer IDE und setzen Sie die bDisableThisBreakpoint-Variable auf „True“ oder „1“.
So setzen Sie einen Fragment-Schreib-Breakpoint für ein bestimmtes Fragment, der für die ausgewählte Entität ausgelöst wird:
Öffnen Sie den Tab Fragmente.
Suchen Sie das gewünschte Fragment.
Klicken Sie auf die Schaltfläche Unterbrechen bei Schreibvorgängen für die ausgewählte Entität.
Verwenden Sie den Entitäten-Tab oder das Gameplay-Debugger-Werkzeug (Konsolenbefehl „EnableGDT“), um eine Entität auszuwählen.
Einschränkungen
Die Breakpoint-Funktionalität wurde nur in Visual Studio 2022 getestet und wird in anderen IDEs möglicherweise nicht unterstützt.
Breakpoints lösen nur für Code aus, der MassExecutionContext::CreateEntityIterator für die Entitäteniteration verwendet
Die Fragmentinspektion erfordert UPROPERTY RTTI und zeigt daher nur Mitgliedsvariablen mit UPROPERTY-Auszeichnung an