Inspecionar objetos em pontos de verificação
Objetivos de aprendizagem
- Configurar pontos de verificação em seu código do Apex.
- Analisar os objetos na memória usando o Checkpoint Inspector.
Configurar pontos de verificação em seu código do Apex
O momento em que o alto-falante de sua nave espacial começa a anunciar erros no sistema, você precisa ir diretamente aos registros para descobrir o que aconteceu e onde.
Da mesma forma, quando seu código do Apex está causando erros, tem problemas de desempenho ou não está produzindo os resultados desejados, seu primeiro passo é identificar o problema usando seu registro de depuração. Combinar todo o registro, linha a linha, é uma tarefa entediante. É aqui que os pontos de verificação vêm a calhar! Os pontos de verificação lhe mostram instantâneos do que está acontecendo em seu código do Apex em pontos específicos durante a execução.
Você pode configurar até cinco pontos de verificação em seu código do Apex. Os pontos de verificação não estão disponíveis para marcação Visualforce.
EmailMissionSpecialist
que criamos mais cedo.- Selecione File (Arquivo) | Open (Abrir) e abra a classe
EmailMissionSpecialist
. - Selecione Debug (Depurar) | Change Log Levels (Alterar níveis de registro).
- Na seção General Trace Settings for You (Configurações gerais de rastreamento para você), clique em Add/Change (Adicionar/Alterar).
- Configure o nível de registro
ApexCode
para FINEST.
Observação: Para definir pontos de verificação, você precisa da permissão de usuário Exibir todos os dados. Para gerar resultados usando pontos de verificação, execute o código usando o recurso de executar no modo anônimo ou defina você mesmo um sinalizador de rastreio DEVELOPER_LOG. O sinalizador de rastreio deve ter um nível de registro para o Apex of INFO ou superior. - Para salvar suas alterações, clique em Done (Concluído).
- Para sair da caixa de diálogo Change Log Levels (Alterar níveis de registro), clique em Done (Concluído).
Quando seu código é exibido no editor de código-fonte, você pode ver os números das linhas no lado esquerdo. Clique no número da linha para inspectResults(results);
. Um ponto vermelho (1) aparece, indicando que um ponto de verificação foi criado.
Agora você pode executar seu código e analisá-lo usando a guia Checkpoints (Pontos de verificação).
Guia Pontos de verificação
Usando a guia Checkpoints (Pontos de verificação), você pode visualizar exatamente onde a execução de seu código está falhando e quais os valores dos objetos que se encontram naquele ponto. Vamos executar esse código para ver o ponto de verificação em ação.
Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo). Insira o seguinte código e execute-o. Substitua Enter your email address (Insira seu endereço de email) pelo seu endereço de email.
EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('Enter your email address', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
Depois que você executar o código do Apex com sucesso, abra seu registro de depuração e clique na guia Checkpoints (Pontos de verificação) para ver os resultados.
- A tabela Checkpoints (Pontos de verificação) exibe o namespace, a classe e o número da linha de cada ponto de verificação. Ela também mostra a data e hora em que cada ponto de verificação foi criado.
- A tabela Checkpoint Locations (Locais do ponto de verificação) exibe o nome do arquivo, o número da linha e as iterações capturadas pelo ponto de verificação selecionado.
Clique duas vezes em um ponto de verificação na tabela Checkpoints (Pontos de verificação) para ver os resultados capturados no Checkpoint Inspector. Agora a diversão vai começar!
Checkpoint Inspector
- Heap – Exibe todos os objetos presentes na memória, na linha de código onde seu ponto de verificação foi executado.
- Symbols (Símbolos) – Exibe todos os símbolos na memória, em modo de exibição em árvore.
Guia Heap
- Em Types (Tipos), clique em
Messaging.SingleEmailMessage
. - Em Instances (Instâncias), clique em qualquer instância desse tipo de objeto.
- Em State (Estado), visualize os campos do objeto e seus valores.
Guia Symbols (Símbolos)
A guia Symbols (Símbolos) é uma maneira rápida e simples de revisar os estados de vários objetos em qualquer ponto de verificação. Símbolos são nomes exclusivos que fazem referência a objetos específicos. A guia exibe todos os símbolos na memória usando um modo de exibição em árvore.
- Para limpar os resultados do ponto de verificação da guia, selecione Debug (Depurar) | Clear (Limpar) | Checkpoint Results Panel (Painel de resultados do ponto de verificação).
- Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
- Execute a classe
EmailMissionSpecialist
novamente, desta vez com um endereço de email inválido, como testingemail.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Depois de executar o código, clique na guia Checkpoints (Pontos de verificação).
A guia Checkpoints (Pontos de verificação) não mostra nenhum resultado, pois a execução de seu código não chegou ao número da linha onde seu ponto de verificação foi definido.
- Selecione File (Arquivo) | Open (Abrir) e abra a classe
EmailMissionSpecialist
. - Clique no número da linha à esquerda para
String[] toAddresses = new String[] {address}
. - Selecione Debug (Depurar) | Clear (Limpar) | Checkpoint Results Panel (Painel de resultados do ponto de verificação).
- Selecione Debug (Depurar) | Open Execute Anonymous Window (Abrir janela Executar no modo anônimo).
- Execute a classe
EmailMissionSpecialist
novamente com um endereço de email inválido, como testingemail.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Clique na guia Checkpoints (Pontos de verificação).
Você vê uma nova entrada na guia Checkpoints (Pontos de verificação). Agora você pode analisar os objetos na memória usando o Checkpoint Inspector.