Roque,
Qualquer função independente da forma que á inicializada pode ser depurada quando você ativa o debug multithread.
Independente do que vou depurar, sendo job, rest, soap, schedule, telnel... Não sendo uma função tradicional chamada pelo Smartclient, eu configuro o debug multithread, chamo uma função inicial que não exista e então faço os demais procedimentos, colocando os breakpoints, digitando no telnet, consumindo o serviço, esperando o schedule etc.
Porque chamo uma função que não existe?
- Dessa forma tenho certeza que não vai entrar em nenhuma outra pilha ADVPL no debug, vai gerar uma exceção no binário simples dizendo que a função não existe, basta deixar essa tela de lado, esquecer dela e seguir no debug.
Eu depuro todas as threads ativas?
- Sim, e isso pode ser complicado, portanto quando menor o número de threads melhor, se vou depurar o REST, não subo o schedule, não subo o SOAP... Deixo apenas o REST no ar e vice-versa, sendo assim, no caso do telnet, eu não configuraria nada no OnStart do appserver, assim teria apenas a thread do telnet e ficaria mais fácil o debug.
Existe outra forma de depurar o telnet?"
- Talvez você consiga depurar via o VTDebug, que é uma função ADVPL com uma interface que simula um coletor, sendo uma simulador, ela não tem todas as funcionalidades, mas já me quebrou muito galho, pra usar ela basta chamar a função VTDebug como função inicial e pronto, só depurar o que quiser.
Mais alguma forma de depurar o telnet, um coletor?
- Não sei... Não sou grande especialista, não cheguei a usar o DevStudio, quando comecei no ADVPL já usava o TDS e pouco depois (felizmente) o Rodrigo Godinho criou a primeiro extensão de ADVPL para o VSCode.