Leia em outras línguas:English Español 中文
Em um cenário típico de depuração, você definiria pontos de interrupção para indicar ao depurador quando suspender seu programa. Um ponto de interrupção geralmente corresponde ao momento que marca o ponto de partida para uma investigação mais aprofundada.
Decidir onde definir um ponto de interrupção pode ser desafiador. Pode haver situações em que a linha exata não esteja clara, ou você pode preferir pausar o programa com base no tempo, em vez de um código específico.
Neste artigo, vamos dar uma olhada na funcionalidadePause Programdo IntelliJ IDEA – uma técnica de depuração menos conhecida que pode ser extremamente poderosa em alguns cenários, inclusive nos descritos acima. Discutiremos seus casos de uso e limitações, além de descobrir o segredo do passo a passo.
Pause Programé uma funcionalidade do depurador do IntelliJ IDEA que permite pausar arbitrariamente sua aplicação em qualquer ponto no tempo. Além disso, você nem precisa conhecer o código da aplicação. Na verdade, você pode simplesmente ignorá-lo!
Para pausar um programa, clique emPause Programna barra de ferramentas do depurador. Então, o programa será interrompido bem no meio do que estiver a fazer.
À primeira vista, um programa em pausa pode parecer exatamente como aquele que foi suspenso em um ponto de interrupção. No entanto, isso só é verdade até certo ponto.
Seria correto considerarPause Programuma espécie dethread dump mais. Você ainda pode inspecionar tão variáveis quanto threads da forma que normalmente faria. Porém, algumas das funcionalidades mais avançadas, comoEvaluate Expression, não funcionarão.
Existem inúmeras maneiras de usarPause Program. Frequentemente, pode ser usado de forma intercambiável com os pontos de interrupção tradicionais. Contudo, há cenários onde usarPause Programé uma abordagem mais adequada. Vamos considerar alguns deles.
Se você encontrar um congelamento da interface do usuário (UI), isso geralmente se deve ao bloqueio da thread da UI.
Pause Programpoderia ser útil nesse caso, pois permite pausar a aplicação enquanto ela está irresponsiva e examinar a pilha de chamadas da thread da UI. Isso é geralmente suficiente para diagnosticar o problema.
Como mencionado anteriormente,Pause Programpermite que você simplesmente ignore o código fonte, que pode estar ausente para você de qualquer maneira. Embora este cenário não seja muito comum, quando você depara com ele, os pontos de interrupção não seriam de nenhuma ajuda.
É aqui quePause Programentra em ação!
Se você suspeitar de um problema de sincronização, como um deadlock ou um livelock,Pause Programpode ajudá-lo a encontrar as threads e travas exatas que estão causando o problema.
Neste caso, pause o programa e inspecione a lista de threads. Ela mostrará quais threads estão bloqueadas. Ao navegar até o ponto de execução, você também verá as seções críticas em que estão trancadas. Essas informações podem ajudar a orientá-lo em direção a uma solução.
Como mencionei anteriormente,Pause Programlimita seu acesso a algumas das funcionalidades avançadas do depurador. Se você tentou usar certas funcionalidades enquanto uma aplicação está pausada, você pode ter visto uma mensagem de erro que dizCannot evaluate methods after Pause action.
No entanto, há um atalho para essa restrição.
Depois de ter pausado uma aplicação, prossiga executando qualquer ação passo a passo.Step IntoouStep Overservirão. Feito isso, você estará em uma sessão de depuração regular, semelhante a quando você suspende uma aplicação usando um ponto de interrupção. Todas as funcionalidades avançadas estão agora desbloqueadas!
É isso por hoje! Espero que você ache estas dicas e truques úteis.
Se você está interessado em mais artigos relacionados com a depuração e o perfilamento, confira alguns dos meus outros artigos:
Se houver algo específico sobre a depuração em Java que você queira que eu aborde, não hesite em entrar em contato! A sua opinião ajudará na priorização e publicação do conteúdo que é mais interessante para você.
以上是Depurar sem Pontos de Interrupção的詳細內容。更多資訊請關注PHP中文網其他相關文章!