Como usar o Cloud Debugger

O Cloud Debugger captura e inspeciona a pilha de chamadas e as variáveis locais de um aplicativo ativo que está sendo executado na nuvem sem interrompê-lo ou deixá-lo lento. O Debugger é compatível com produtos do Google Cloud, incluindo App Engine, Compute Engine, GKE e Cloud Run:

O Debugger funciona como o depurador padrão do seu ambiente de desenvolvimento integrado e fornece a mesma interface do usuário, com as seguintes diferenças importantes:

  • O Debugger não pausa a execução do aplicativo.
  • Não é possível percorrer um aplicativo no Debugger.

Para mais informações sobre as plataformas compatíveis com o Debugger, consulte Como configurar o Debugger.

Requisitos

Para executar o Debugger, você precisará dos seguintes recursos:

Como usar o Debugger

Para usar esse recurso, siga estas instruções:

  1. Abra seu projeto dentro do IntelliJ.
  2. Escolha Run > Edit Configurations.
  3. Clique no sinal de adição (+) no canto superior esquerdo e selecione Cloud Debugger na lista suspensa.
  4. Digite um nome para sua configuração no campo Name.
  5. Verifique se seu projeto está selecionado no campo Project.
  6. Clique em OK.
  7. Para iniciar o depurador, clique no ícone verde Debug Ícone de depuração na barra de ferramentas.
  8. Na caixa de diálogo Attach to a Application, selecione o módulo de back-end que você quer depurar e clique em Attach.

Como definir o local do snapshot

Um instantâneo captura as variáveis locais e a pilha de chamadas no local especificado no código-fonte. O local do instantâneo se aplica a todas as instâncias do seu aplicativo em execução.

Para definir um local do instantâneo, siga estas etapas:

  1. Depois de anexar o Debugger a um aplicativo em execução, navegue até o arquivo que contém o código-fonte que você quer assistir.
  2. Clique nas linhas executáveis para a captura de snapshot na área de gutter à esquerda, assim como faria ao definir um ponto de interrupção de linha para um aplicativo local usando o depurador regular do IDEA.

    Um círculo azul aparece no ícone de gutter para indicar o local do snapshot, e o painel "Snapshots do Debugger" exibe snapshots pendentes.

  3. Para remover o local do snapshot, clique no círculo azul.

No exemplo a seguir, o local do snapshot é definido na linha if (userAgent != null) {.

Definir o local do snapshot

Como conseguir o snapshot

Na primeira vez que uma instância executa o código no local do instantâneo, o depurador captura um instantâneo e o disponibiliza para visualização. Então será possível examinar o snapshot e usar os dados para depurar seu aplicativo.

O rótulo no snapshot no painel "Snapshots do Debugger" muda de Pendente para o momento em que o Debugger captura o snapshot.

Ver pilha de trace

Conceitos avançados

Definir uma condição de snapshot

Essa condição é uma expressão booleana que diz ao depurador para capturar um snapshot somente quando o valor for verdadeiro. Por exemplo, x !=0. A condição é uma expressão booleana completa que pode incluir operadores lógicos e numéricos, por exemplo, score < 0 || score > 500.

Inspecionar expressões

Sometimess vezes, as informações necessárias para depurar um problema não ficam imediatamente aparentes nas variáveis e nos campos locais do aplicativo. Em particular, ao executar no App Engine, o gerente de segurança impede que você se aprofunde nos membros particulares de classes do sistema, como java.util.Hashmap. Em casos assim, uma expressão de inspeção opera como uma variável local temporária e eficaz para expor mais informações. As expressões de inspeção podem avaliar expressões complexas e transferir hierarquias de objeto quando um instantâneo é capturado.

Você pode especificar uma expressão de inspeção depois de definir a localização do instantâneo. As expressões de observação são compatíveis com os mesmos recursos de linguagem das condições do snapshot, descritas na seção Definir uma condição do snapshot.

Como receber suporte

Para enviar um feedback ou informar um problema no ambiente de desenvolvimento integrado do IntelliJ, acesse Tools > Cloud Code > Ajuda / Sobre > Envie feedback ou relate um problema no GitHub ou faça uma pergunta no Stack Overflow.

Você também pode participar do canal #cloud-code, que faz parte da comunidade do Google Cloud no Slack.