Como usar o Break Point condicional no VSCode com AdvPL e TL++

No artigo de hoje, vamos demonstrar em como utilizar o Break Point condicional no VSCode com a extensão da TOTVS.

Se você já precisou depurar / debugar algum laço de repetição e gostaria que ele parasse somente quando determinada condição fosse verdadeira, saiba que existe esse recurso no VSCode, é o Break Point condicional.

Para fazer isso, iremos utilizar o seguinte código como exemplo:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zTstBrk
Função de Teste do BreakPoint condicional
@type  Function
@author Atilio
@since 22/08/2022
/*/

User Function zTstBrk()
    Local nAtual := 0
    Local cMsg   := ""

    For nAtual := 1 To 10
        cMsg += "Passei pelo " + cValToChar(nAtual) + "; "
    Next

    Alert(cMsg)
Return

O código acima é bem simples, onde temos duas variáveis, um laço de repetição de 1 a 10, que vai inserindo um texto de mensagem, e ao finalizar é exibido uma mensagem, similar do print abaixo.

Resultado da função

  1. Então agora, vamos adicionar o Break Point na linha 16, onde é incrementado a mensagem. Após inserir, clique com o botão direito e depois clique em Editar Ponto de Interrupção / Edit Break Point.

Editando o Break Point

  1. Será exibido uma caixa para você digitar uma expressão, onde o resultado dela tem que ser lógico (.T. ou .F.).

Campo para inserir uma expressão

  1. Você pode digitar comandos em AdvPL, no nosso caso iremos colocar que só irá parar no Break Point caso o nAtual seja igual a 6

Inserindo uma expressão

  1. Para confirmar, o ícone do Break Point irá mudar (no tema que estou usando, ele fica com um sinal de igual dentro da bolinha), e ao posicionar o cursor do mouse por cima, ele exibe a expressão condicional

Visualizando a expressão

  1. Agora ao executar nossa depuração no Protheus, e acionar essa customização, ela só irá parar nesse Break Point quando a condição for verdadeira, conforme print abaixo

Parada no Break Point condicional

Obs.: Realizei testes em uma base com a versão 12.1.33 e com a extensão na versão 1.3.15, se eu não me engano, em versões mais antigas, acontecia problemas ao utilizar esse recurso.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

2 Responses

  1. Andre Froes disse:

    Atilio, sou seu fã cara! Faz tempo que tentei utilizar o Break Point Condicional e nao conseguia.. Vou testar aqui em um ambiente que você apontou. Obrigado e parabéns pela sua atividade para a comunidade!

Deixe uma resposta