Usar o Cloud Debugger no Cloud Code para IntelliJ

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. Clique em Executar > Editar configurações.
  3. Clique em + Adicionar nova configuração no canto superior esquerdo e selecione Google 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 em Ícone de depuração Debug na barra de ferramentas.
  8. Na caixa de diálogo Attach to an 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. Navegue até o arquivo que contém o código-fonte que você quer observar, depois de anexar o Debugger a um aplicativo em execução.
  2. Clique na linha executável que você quer capturar na área de gutter à esquerda, assim como faria ao definir um ponto de interrupção de linha de um aplicativo local usando o depurador normal do IDEA.
  3. Na caixa de diálogo Definir ponto de interrupção que aparece, selecione Local do snapshot do Cloud. Um círculo azul vai aparecer no gutter para indicar o local do snapshot e o painel "Snapshots do depurador" vai mostrar os snapshots pendentes.
  4. Para desativar o local do snapshot, clique com o botão direito do mouse no círculo azul e desmarque a caixa de seleção Ativado.
  5. Para remover o local do instantâneo, clique no círculo azul.
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" mudará de Pendente para o momento em que o Debugger capturou o snapshot.

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.

Para definir uma condição de snapshot, siga estas instruções:

  1. Clique com o botão direito do mouse no local do Cloud Snapshot (o círculo azul) no gutter.
  2. No campo Condição, digite a condição.

Inspecionar expressões

Ás 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 de snapshot.

Receba ajuda

Para enviar um feedback ou informar um problema no ambiente de desenvolvimento integrado do IntelliJ, acesse Tools > Cloud Code > Help / About > Envie feedback ou informe um problema para informar 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.