Ajuda para o MetaEditor

Depuração

É difícil eliminar erros ao escrever programas consideravelmente complicados. O MetaEditor oferece um depurador para ajudar a resolver este problema. A depuração de aplicativos consiste na possibilidade da execução de um programa passo-a-passo, no cálculo de variáveis ​​locais e na criação de pontos de ruptura em locais predefinidos.

A fim de iniciar a depuração, a janela do arquivo principal do projeto deve estar ativa (*.MQ5). Para depurar arquivos inclusos (*.MQH), é necessário iniciar a depuração do arquivo em que eles estão incluídos.

Adicionalmente, o processo de depuração é descrito em detalhes:

Predefinição

Antes de iniciar a depuração do programa é necessário verificar os seus parâmetros na guia "Depuração" da janela de opções do MetaEditor. Nesta janela, você pode especificar um ativo e um período do gráfico em que a depuração dos aplicativos será realizada. Essa guia será criada temporariamente cada vez que a depuração for iniciada, e ela será excluída após a conclusão da depuração.

O template "debug.tpl", localizado na pasta /profiles/template do terminal cliente, é inserido no gráfico criado para a depuração.

Pontos de Ruptura

O Ponto de Ruptura é um comando que é desencadeado quando a execução do programa passa pela linha indicada e interrompe o programa nesta localização. Os pontos de ruptura permitem analisar o comportamento do programa em um local selecionado: ver valores de variáveis, pilha de funções... Depois disso, o processo de depuração pode ser continuado ou terminado.

Antes de iniciar a depuração, coloque os pontos de ruptura nos locais desejados do código. Para fazer isso, clique duas vezes com o botão esquerdo do mouse no campo cinza perto da borda esquerda da linha de código. Você também pode colocar o cursor do mouse na linha desejada e executar o comando "Alternar Ponto de Ruptura Alternar Ponto de Ruptura" do menu "Depurar" ou da barra de ferramentas "Padrão" ou você pode pressionar a tecla "F9". Os pontos de ruptura são desativados da mesma forma.

Ponto de Ruptura

Iniciar Depuração

Para iniciar o processo de depuração, é necessário abrir o arquivo do programa, selecionando-o na janela "Navegador". Depois disso, execute o comando "Iniciar Depuração Iniciar Depuração" do menu "Depurar" ou da barra de ferramentas "Padrão" ou você pode pressionar a tecla "F5". Depois disso, o programa para ser depurado será inserido em um gráfico especial no terminal. Assim que a execução do programa chegar na primeira linha com ponto de ruptura, ele será interrompido. O ponto onde a execução foi interrompida será alterado para o Ponto de Ruptura Acionado. Além disso, a guia "Depuração" aparecerá na janela "caixa de ferramentas". No seu lado esquerdo, a pilha de chamada de função será mostrada.

A depuração de aplicativos é realizada em condições reais, utilizando os dados de preços recebidos do servidor. O gráfico especial temporário, criado para a depuração, não possui qualquer diferença em relação aos gráficos comuns abertos no terminal cliente.

Verificando Expressões

No processo de depuração, você pode verificar os valores de diferentes expressões (variáveis) obtidas nesta etapa de execução do programa. Para estes fins, a parte direita da guia "Depuração" na janela "Caixa de Ferramentas" é usada. Uma expressão pode ser adicionada nas seguintes formas:

  • Durante a depuração, abra o menu contextual em uma expressão desejada e selecione o comando "Adicionar ObservarAdicionar Observar" ou pressione a combinação de teclas "Shift + F9";
  • Na parte direita da guia "depuração", na janela "caixa de ferramentas", abra o menu contextual e execute o comando "AdicionarAdicionar" ou pressione "Insert". Depois disso, uma nova linha irá aparecer, e em seu campo "Expressão", você deve digitar o nome de um parâmetro para observar.
  • A fim de mudar o nome de uma expressão observada, é necessário clicar duas vezes com o botão esquerdo do mouse sobre o seu nome ou selecioná-lo e executar o comando "Editar" do menu contextual ou pressionar "F2".

Visualização de pilhas e expressões

Na janela de observação de expressões, você pode realizar cálculos matemáticos simples (adição, subtração, multiplicação e divisão), bem como ver valores em certos pontos da matriz. Por exemplo, é possível indicar um registro como A[3][4], em que A é o nome de uma matriz, 3 e 4 são posições nas suas dimensões. Ao adicionar itens nas expressões observadas, pode-se ver a lista de seus itens pela adição de um ponto em seu fim ou pressionando "Ctrl+Espaço":

Inserindo itens do objeto

Visualizando Pilhas de Chamadas

A parte esquerda da guia "Depuração" na janela "caixa de ferramentas" permite visualizar pilhas. Aqui, os seguintes componentes são mostrados:

  • Nome de um arquivo, a partir do qual uma função é chamada;
  • nome da função;
  • Número da linha no arquivo, onde esta função é chamada.

Quando o processo de depuração é iniciado, somente o endereço da função chamada, em que o ponto de ruptura foi desencadeado, é mostrado nesta janela.

Depuração Passo-a-Passo

Para a depuração passo-a-passo com a exibição das chamadas de pilha, os comandos do menu"Depuração" ou da barra de ferramentas "Padrão" são usados:

  • Entrar Entrar – avança um passo na execução do programa, entrando nas funções chamadas. A mesma ação pode ser realizada pressionando a tecla "F11".
  • Passar por cima Passar por cima – avança um passo na execução do programa, não entrando nas funções chamadas. A mesma ação pode ser realizada pressionando a tecla "F10".
  • Sair Sair – vai para a execução de uma etapa do programa de um nível mais elevado. A mesma ação pode ser realizada pressionando "Shift+F11".

Para executar os comandos acima, o processo de depuração deve ser parado. Isso é feito automaticamente quando a execução do programa chega a um ponto de ruptura. Além disso, a depuração pode ser suspensa manualmente ao pressionar "Pausar Depuração Pausar Depuração" no menu "Depurar" ou da barra de ferramentas "Padrão", ou pressionando a tecla "Break".

Quando um aplicativo está em um ponto de ruptura, a ocorrência de eventos continua. Nisso, todos eles são colocados em uma fila, e a sua manipulação por Experts será continuada após a saída do código do identificador do evento atual.

Pausando, Continuando e Parando a Depuração

A pausa do processo de depuração do programa é feita automaticamente, quando se atinge uma linha com um ponto de ruptura. No entanto, o processo de depuração pode ser controlado manualmente:

  • Pausando
    A execução do programa durante a depuração pode ser pausada manualmente utilizando o comando "Pausar Depuração Pausar Depuração" no menu "Depurar" ou da barra de ferramentas "Padrão", ou pressionando a tecla "Break". Depois disso, você pode executar a depuração passo-a-passo.
  • Continuando
    A fim de continuar a execução do programa no modo de depuração, depois que ele é pausado automaticamente ou manualmente, execute o comando "Continuar Depuração Continuar Depuração" do menu "Depurar" ou da barra de ferramentas "Padrão" de mesmo nome ou você pode pressionar a tecla "F5".
  • Parando
    A fim de parar a depuração, é necessário executar o comando "Parar Depuração Parar Depuração" do menu "Depurar" ou da barra de ferramentas "Padrão", ou pressionando "Shift+F5". Após o programa ser interrompido, ele é removido do gráfico especial, o qual foi inserido para depuração, e o gráfico é fechado.

A depuração é impossível sem os arquivos fonte MQ5 e MQH. Recomenda-se não distribuir arquivos EX5 obtidos no resultado da depuração.