Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como usar o Cloud Debugger

O Cloud Debugger pode capturar e inspecionar a pilha de chamadas e as variáveis locais de um aplicativo em execução na nuvem sem interromper ou desacelerar o app. O Debugger é compatível com produtos do Google Cloud, incluindo:App Engine ,dependente do AD, GKE e Cloud Run para começar.

O Debugger funciona de maneira muito semelhante ao depurador padrão do seu ambiente de desenvolvimento integrado e oferece a mesma interface do usuário, com as seguintes diferenças principais:

  • O Debugger não pausa a execução do aplicativo em execução.
  • 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. Selecione 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 de bug 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 um local de 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 que terão o snapshot na área à esquerda, como você faria ao definir um ponto de interrupção de linha para um aplicativo local usando o depurador comum do IDEA.

    Um círculo azul aparece na calha 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 capturou 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 de que você precisa para depurar um problema não são 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 monitoramento 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 feedback, relate um problema no GitHub ou faça uma pergunta no Stack Overflow.