개요
매스 디버거(Mass Debugger) 툴은 엔티티 프래그먼트 데이터의 리얼타임 검사, 엔티티별 프래그먼트 액세스 중단점, 게임플레이 디버거(Gameplay Debugger)와의 통합, 향상된 프로세서 검사 등 다양하고도 새로운 기능으로 크게 개선되었습니다.
매스 디버거 사용하기
매스 디버거를 실행하려면 에디터에서 도구(Tools) > 디버그(Debug) > 매스 디버거(Mass Debugger)를 선택합니다. 참고: 이전 버전의 매스 디버거를 실행한 경우, 새 탭을 보려면 레이아웃을 리셋해야 할 수 있습니다(매스 디버거 창에서 창(Window) > 레이아웃 리셋(Reset Layout)).
UI 워크플로
프로세서 데이터 액세스 오버랩을 확인하려면 다음 단계를 따릅니다.
매스 디버거를 엽니다.
환경 선택기(Environment Picker)를 사용하여 검사하려는 매스 런타임 환경을 선택합니다.
프로세서(Processors) 탭(창(Window) > 프로세서(Processors))을 엽니다.
목록에서 검사하려는 프로세서를 찾습니다.
프로세서 항목에서 프래그먼트 액세스 표시(Show Fragment Access) 버튼을 클릭합니다.
펼쳐진 프로세서 항목의 쿼리(Queries) 목록에서 프래그먼트를 클릭합니다.
프로세서의 색은 각 프로세서의 액세스 권한에 따라 변경됩니다. 녹색은 읽기(상수) 액세스 권한을, 빨간색은 쓰기(뮤터블) 액세스 권한을 나타냅니다.
활성 환경을 선택한 상태에서 매스 디버거의 엔티티에 있는 프래그먼트 데이터를 검사하려면 다음 단계를 따릅니다.
엔티티(Entities) 탭(창(Window) > 엔티티(Entities))을 열거나, 디버거 UI에서 상황에 맞는 엔티티 표시(Show Entities) 버튼 중 하나를 사용합니다.
프래그먼트 선택(Select Fragments) 드롭다운을 클릭하고 검사할 프래그먼트를 선택합니다.
참고: 프래그먼트 목록은 나열된 엔티티의 컴포지션에 따라 달라집니다.
참고: 선택된 프래그먼트 구조체의 멤버 변수 중 UPROPERTY로 표시된 것만 표시됩니다. 다른 에디터의 비저빌리티 메타데이터는 필요하지 않습니다.
특정 엔티티의 특정 프래그먼트에 프래그먼트 쓰기 중단점을 설정하려면 다음 단계를 따릅니다.
엔티티 탭에서 원하는 엔티티에 대한 프래그먼트 데이터를 표시합니다.
쓰기 중단점 설정(Set Write Breakpoint) 버튼을 클릭합니다.
참고: 중단점은 MassExecutionContext::EntitiyIterator에 대한 EntityIterator 코드에서 트리거됩니다. 해당 이터레이터 또는 해당 이터레이터에 대한 래퍼를 사용하는 코드만 이러한 방식으로 중단점을 트리거합니다. 트리거하는 코드는 일반적으로 콜스택에서 2~3레벨 위에 위치합니다.
IDE에서 중단점을 지우고 실행을 재개하려면 IDE의 감시 기능을 사용하여 bDisableThisBreakpoint 변수를 "true" 또는 "1"로 설정합니다.
선택된 엔티티가 무엇이든, 해당 엔티티에 대해 트리거되는 특정 프래그먼트의 프래그먼트 쓰기 중단점을 설정하려면 다음 단계를 따릅니다.
프래그먼트(Fragments) 탭을 엽니다.
원하는 프래그먼트를 찾습니다.
선택한 엔티티에 대한 쓰기 중단(Break on writes for the selected entity) 버튼을 클릭합니다.
엔티티 탭 또는 게임플레이 디버거 툴("EnableGDT" 콘솔 명령)을 사용하여 엔티티를 선택합니다.
제한 사항
중단점 함수 기능은 Visual Studio 2022에서만 테스트되었으며 다른 IDE에서는 지원되지 않을 수 있습니다.
중단점은 엔티티 반복작업용으로 MassExecutionContext::CreateEntityIterator를 사용하는 코드에 대해서만 트리거됩니다.
프래그먼트 검사에는 UPROPERTY RTTI가 필요하므로 UPROPERTY 마크업이 있는 멤버 변수만 표시됩니다.