Visão geral
A ferramenta do depurador do Mass foi aprimorada significativamente com muitas funcionalidades novas, incluindo: inspeção em tempo real de dados de fragmentos de entidades, pausas de depuração de acesso a fragmentos específicos da entidade, integração com o depurador de jogabilidade e inspeção de processador aprimorada.
Como usar o depurador do Mass
Para inicializar o depurador do Mass, selecione Ferramentas > Depuração > Depurador do Mass no editor. Observação: se você inicializou versões anteriores do depurador do Mass, pode ser necessário restaurar o layout para ver as novas abas (Janela > Redefinir layout na janela do depurador do Mass).
Fluxo de trabalho da interface de usuário
Para visualizar sobreposições de acesso a dados do processador:
Abra o depurador do Mass.
Use o seletor de ambiente para selecionar o ambiente de tempo de execução do Mass que você deseja inspecionar.
Abra a aba Processadores (Janela > Processadores).
Localize o processador que você deseja inspecionar na lista.
Clique no botão "Mostrar acesso ao fragmento" na entrada do processador.
Clique em um fragmento da lista "Consultas" na entrada do processador expandido.
A cor dos processadores mudará com base no acesso de cada processador. Verde indica acesso de leitura (constante) e vermelho indica acesso de gravação (mutável).
Para inspecionar dados de fragmento em uma entidade com base no depurador do Mass com um ambiente ativo selecionado:
Abra a aba Entidades (Janela > Entidades ou use um dos botões contextuais "Mostrar entidades" na interface do depurador).
Clique no menu suspenso Selecionar fragmentos e marque os fragmentos que deseja inspecionar.
Observação: a lista de fragmentos é contextual em relação à composição das entidades listadas.
Observação: apenas serão exibidas variáveis que fizerem parte das structs de fragmento selecionadas marcadas como UPROPERTY. Nenhum outro metadado de visibilidade do editor é necessário.
Para definir uma pausa de depuração de gravação de fragmento para um fragmento específico em uma entidade específica:
Mostra os dados de fragmento da entidade desejada na aba Entidades.
Clique no botão Definir pausa de depuração de gravação.
Observação: a pausa de depuração será acionada no código de EntityIterator para MassExecutionContext::EntitiyIterator. Apenas o código que usa esse iterador ou agrupadores para ele acionará pausas de depuração dessa maneira. O código de gatilhos geralmente estará dois ou três níveis acima na pilha de chamadas.
Para limpar a pausa de depuração da IDE e retomar a execução, use a funcionalidade de observação na IDE e defina a variável bDisableThisBreakpoint como true ou 1.
Para definir uma pausa de depuração de gravação de fragmento para um determinado fragmento que seja acionado para qualquer entidade selecionada:
Abra a aba Fragmentos.
Localize o fragmento desejado.
Clique no botão Interromper nas gravações para a entidade selecionada.
Use a aba Entidades ou a ferramenta de depuração de jogabilidade (comando do console "EnableGDT") para selecionar uma entidade.
Limitações
A funcionalidade de pausas de depuração foi testada apenas no Visual Studio 2022 e pode não ser compatível com outras IDEs
Pausas de depuração são gatilhos apenas para código que usa MassExecutionContext::CreateEntityIterator para iteração de entidades
A inspeção de fragmento exige UPROPERTY RTTI e, portanto, só mostrará variáveis de membro com marcação UPROPERTY