Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Com isso em mente já podemos para observar que quem realmente faz a depuração é o servidor, o TDS apenas exibirá as informações retornadas pelo servidor.

A segunda coisa, é que o TDS é construído em cima da plataforma Eclipse e utiliza o framework de depuração dela para que as informações sejam apresentadas na tela.


Vamos conhecer o fluxo de execução de uma depuração com o TDS.

(Em relação aos processos do servidor, podemos apenas deduzir o que ocorre, portanto as informações aqui referentes a ele são apenas superficiais):


1 - O usuário conecta-se a um servidor (O qual pode ser local ou remoto)

...

10.9 - Agora com as informações apresentadas, o TDS fica aguardando o usuário informar qual o próximo passo. Eles podem ser:

10.9.1 - Step Over (F6): Essa opção fará com que o servidor execute a linha corrente, parando na próxima do mesmo fonte. Ou seja, a linha possua a execução de uma função qualquer, todo código dessa função será executado e apenas quando ela retornar o servidor fará a parada.

10.9.2 - Step Into (F5): Ao contrário da opção anterior, caso a linha seja uma chamada de uma função, o servidor irá entrar na mesma e informar a parada na primeira linha dessa função.

10.9.3 - Step Return (F7): Retorna de uma função que foi entrada via Step Into.

10.9.4 - Run To Line (Ctrl+R): Essa opção possui a mesma funcionalidade de um ponto de parada, porém sem a necessidade de criá-lo. O usuário coloca o cursor na linha onde espera que a próxima parada aconteça e aciona essa opção. Na prática, o TDS informa para o servidor que foi criado um ponto de parada naquela linha e manda executar. Quando o servidor retornar para o TDS, este faz todo o processo da parada e remove o ponto de parada da linha.

19.9.5 - Resume (F8): Faz com que a execução continue até que outro ponto de parada seja encontrado ou o programa finalize.

...

Observando apenas o fluxo de execuções, já é possível deduzir algumas boas práticas para que uma depuração seja realizada. Ao longo do tempo, a equipe de desenvolvimento da ferramenta identificou também alguns comportamentos dos usuários que não ajudam o processo como um todo.


A seguir vamos falar um pouco sobre recomendações, boas práticas, o que fazer e o que não fazer, e o que devemos esperar de algumas situações.


1 - Ambiente de depuração:

1.1 - Recomendamos fortemente que a depuração seja feita em ambiente local

...

1.4 - Garanta que a máquina que está rodando o TDS tenha memória disponível e o processador não esteja em uso pesado. Faça o mesmo para a máquina onde está localizado o servidor (Caso seja um servidor remoto).


2 - Parâmetro -A:

No executor do TDS, existe um campo onde é possível informar parâmetros para o programa a ser executado (-A).

...

Como pode notar, é um problema na função e não existe nada que o TDS possa fazer para contornar.


3 - Procura de fontes:

Como você observou no fluxo, quando o servidor informa ao TDS uma parada, este irá buscar os fontes apenas nos projetos informados na aba "Source Lookup/Origem" do executor.

...

Note que as ações do item 2.3 possuem um grande impacto na performance da depuração.


4 - Ações de execução:

As açõespodem ser: Step Into/Avançar para, Step Over/Ultrapassar, Step Return/Retroceder, Run/Continuar, Termiante/Encerrar.

...

Por exemplo, suponha a seguinte situação hipotética:

    • Na linha corrente exista a função: calculeFatura() e nessa função possua um ponto de entrada onde você deve fazer a soma dos itens e retornar para o processo.
    • Porém, antes do ponto em que seu fonte é chamado, essa função seleciona uma série de tabelas e executa 2500 linhas.
    • O servidor irá fazer um Step Into em cada uma das 2500 linhas executadas (Mandando informação para o TDS em cada uma delas, onde o TDS fará o processo de parada até que o fonte não seja encontrado), e se em uma delas existir outras funções, essas também serão acessadas antes de chegar no seu fonte.

...