Depuração
O que é a depuração
A depuração é um processo durante o qual pode detetar e corrigir os erros presentes no seu código.
Qualquer programa .NET pode ser executado em dois modos diferentes.
- Modo de lançamento - normalmente utilizado em ambientes de produção. Ao utilizá-lo, o .NET ativa várias otimizações do compilador e just-in-time que melhoram a velocidade com que o seu código é executado e reduzem a sua pegada de memória.
- Modo de depuração - utilizado principalmente em ambientes de desenvolvimento e teste. Todas as otimizações são desativadas e pode anexar depuradores .NET ao seu código.
Ao trabalhar com bibliotecas e aplicações .NET, a depuração implica o seguinte:
- Executar o seu código em modo de depuração
- Anexar um depurador .NET ao seu código
- Definir pontos de interrupção de código para indicar se o fluxo de execução deve ser pausado
- Seguir o fluxo de execução do código com pausas planeadas nos pontos de interrupção
Definir depuradores .NET
Os depuradores .NET são programas que utilizam APIs de tempo de execução. Estas APIs, por sua vez, permitem controlar o fluxo de execução dos processos .NET. Por outras palavras, podem pausar a execução em determinados pontos de interrupção e armazenar vários estados (incluindo os valores que as variáveis individuais contêm durante estes estados).
Criar algos em modo de depuração
Como discutimos acima, depurar um cBot ou um indicador implica criar esta extensão em modo de depuração. Por predefinição, quando clica no botão Criar na interface do cTrader, a sua extensão é executada em modo de lançamento para ativar as otimizações de código.
Para criar o seu cBot ou indicador em modo de depuração, precisa de utilizar a CLI .NET ou IDEs externos como o Visual Studio. Nesta documentação, mostramos o processo de depuração tal como ocorre no Visual Studio. No entanto, este processo também pode ser replicado noutros IDEs com pequenas alterações.
Instale a versão mais recente do Visual Studio na sua máquina e execute as seguintes ações:
-
Abra o seu indicador ou cBot no Visual Studio selecionando a opção Editar no Visual Studio no menu suspenso Editar em... na parte superior da janela do editor de código.
-
No menu acima do editor de código do Visual Studio, selecione Depurar.

- Crie o seu cBot ou indicador em modo de depuração.
Depurar um cBot ou indicador
Agora que sabe como criar um cBot ou indicador em modo de depuração, vamos concentrar-nos em como realmente depurá-lo.
-
Altere os direitos de acesso do seu indicador ou cBot para
FullAccess. -
Anexe um depurador ao processo em execução do seu indicador ou cBot. Pode fazê-lo chamando o método
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Nota
O método System.Diagnostics.Debugger.Launch() tem de ser chamado no método OnStart() (para um cBot) ou no método Initialize() (para um indicador).
- Execute uma nova instância do seu cBot ou indicador. Se já estiver uma instância em execução, selecione-a na interface do utilizador. Deverá ser redirecionado para o Visual Studio com um pedido para selecionar um depurador. Faça-o e clique em OK.

Assim que a depuração começar, pode definir pontos de interrupção, (entrar em) linhas de código e ver a pilha de chamadas e os valores das variáveis.
Para um guia completo sobre como depurar no Visual Studio, consulte a documentação de depuração do Visual Studio.
Utilizar a diretiva de pré-processador DEBUG
Também pode utilizar a diretiva de pré-processador DEBUG no código do seu cBot ou indicador para controlar o fluxo de execução.
A diretiva #if DEBUG é útil quando pretende executar apenas um bloco ou uma linha de código em modo de depuração.
1 2 3 4 5 6 7 8 9 | |
No exemplo acima, a linha de código "Not Debugging" não será compilada se criar o seu cBot em modo de depuração.
Estão disponíveis informações adicionais sobre as diretivas de processador C# nesta documentação.