4D v16.3

Painel de Avaliação de métodos

Página Inicial

 
4D v16.3
Painel de Avaliação de métodos

Painel de Avaliação de métodos  


 

 

Painel de Avaliação de métodosPainel de Avaliação de métodosmostra o código fonte do método que está sendo rastreado.

Se o método for muito longo para caber na área de texto, você pode rolar para ver outras partes do método

Movendo o ponteiro do mouse sobre qualquer expressão que possa ser avaliada (campo, variável ponteiro, array,...) uma dica mostrará o valor atual do objeto ou da expressão e seu tipo declarado.

Aqui está um exemplo do Painel de Avaliação de métodos:

Uma dica é exibida porque o ponteiro do mouse estava sobre a variável pTabela que, de acordo com a dica, é um ponteiro para a tabela [Clientes].

Você também pode selecionar uma parte do texto na área que exibe o código que está sendo executado. Neste caso, quando o cursor é colocado em cima do texto selecionado, uma dica exibe o valor do objeto selecionado:

Quando você clica em um nome de variável ou campo, ele é automaticamente selecionado.

Dica: É possível copiar qualquer expressão selecionada (que pode ser avaliada) a partir do Painel de Avaliação de métodos para o Painel de avaliação. Você pode usar uma das seguintes formas:

  • simplesmente arrastando e soltando (clique sobre o texto selecionado, arraste e solte-o na área de avaliação). 
  • usando as teclas Ctrl+D (Windows) ou Comando+D (Mac OS).

Uma seta amarela na margem esquerda do painel de avaliação de métodos (ver figura acima) marca a linha seguinte, que será executada. Esta seta é chamada de contador do programa. O contador de programa indica sempre a linha que está prestes a ser executada.

Para fins de depuração, você pode alterar o contador do programa para o método estar no topo da cadeia de chamada (o método que está sendo executado). Para fazer isso, clique e arraste a seta amarela na vertical, a linha que você deseja.

AVISO: Use esse recurso com cautela!

Mover-se para a frente com o contador do programa NÃO significa que o depurador esteja executando as linhas que você pula. Da mesma forma, o contador de programa que se desloca para trás NÃO significa que o depurador está invertendo o efeito das linhas que já tenham sido executadas.

Movendo o contador de programa simplesmente informa o depurador para "prosseguir o rastreamento ou executar a partir daqui." Todas as configurações atuais, campos, variáveis e assim por diante não são afetadas pelo movimento.

Aqui está um exemplo para mover o contador de programa. Digamos que você está depurando o seguinte código:

  ` ...
 If(esta condição)
     FAZER ALGO
 Else
    FAZER OUTRA COISA
 End if
  ` ...

O contador de programa está definido para a linha If (Esta condição). Você passa uma vez e você verá que o programa move a linha de para FAZER OUTRA COISA. Isso é lamentável, porque você queria executar a outra alternativa do If. Neste caso, e desde que a expressão Esta condição não realizar operações que afetem os próximos passos na sua análise, basta mover o contador de programa de volta para a linha FAZER ALGO. Você pode agora continuar o rastreamento da parte do código em que você está interessado.

No processo de depuração, você pode ignorar a necessidade de rastreio de algumas partes do código. O depurador oferece várias maneiras para executar código até um certo ponto:

  • Enquanto no passo a passo, você pode clicar no botão Avançar, em vez de botão Executar e entrar. Isso é útil quando você não quer entrar em possíveis sub-rotinas ou funções chamadas na linha do contador do programa.
  • Se você, por engano, entrou em uma sub-rotina, você pode executá-la e voltar diretamente para o método chamador, clicando no botão Executar e Sair.
  • Se você tiver uma chamada TRACE colocada em algum ponto, você pode clicar no botão No Trace, que continua a execução até que a invocação de comando.

Agora, digamos que você está executando o código a seguir, com o contador de programa na linha ALL RECORDS([EstaTabela]):

  ` ...
 ALL RECORDS([EstaTabela])
 $vrResult:=0
 For($vlRegistro;1;Records in selection([EstaTabela]))
    $vrResult:=Esta Função([EstaTabela]))
    NEXT RECORD([EstaTabela])
 End for
 If($vrResult>=$vrLimitValor)
  ` ...

Seu objetivo é avaliar o valor de $vrResult após o loop For tenha sido concluído. Como se demora algum tempo para a execução chegar a este ponto no seu código, você não quer abortar a execução em curso, em seguida, editar o método, a fim de inserir um traço da chamada TRACE antes da linha If ($vrResult....

Uma solução é percorrer o loop, no entanto, se a tabela [EstaTabela] tiver registros de centenas de registros, você vai passar o dia inteiro para essa operação. Neste tipo de situação, o depurador oferece pontos de interrupção. Você pode inserir pontos de interrupção, clicando na margem esquerda do painel de avaliação de métodos.

Por exemplo:
Clique na margem esquerda do Painel de Avaliação de métodos ao nível da linha If ($vrResult...:

Insere um Ponto de Interrupção para a linha. O Pontos de Interrupção é indicado por um ponto vermelho. Em seguida, clique no botão Sem trace.

Este retoma a execução normal até a linha marcada com o Pontos de Interrupção. Essa linha não é executada, se você está de volta no modo de rastreamento. Neste exemplo, o loop inteiro tem sido consequentemente executado normalmente. Então, ao chegar o Pontos de Interrupção, você só precisa mover o botão do mouse sobre $vrResult para avaliar o seu valor no ponto de saída do loop.

Definir um Pontos de Interrupção além do contador de programa e clicar no botão Sem trace permite que você pule partes do método que está sendo rastreado.

Nota: Você também pode definir Pontos de Interrupção diretamente no Editor de métodos 4D. Por favor, consulte a seção Ponto de Interrupção.

Um Ponto de Interrupção vermelho é um ponto de interrupção persistente. Uma vez que você criou, ele "permanece." Mesmo que você feche o banco de dados, em seguida, reabra-lo mais tarde, o Ponto de Interrupção estará lá.

Existem duas maneiras de eliminar um Pontode Interrupção persistente:

  • Se você estiver com isso, basta removê-lo clicando no marcador vermelho - O Pontos de Interrupção desaparece.
  • Se você não estiver com vontade, pode querer manter o Ponto de Interrupção. Você pode desativar temporariamente o Ponto de Interrupção editando-o. Isto é explicado na seção Ponto de Interrupção.

O menu contextual de Painel de Avaliação de métodos dá acesso a várias funções que são úteis durante a execução de métodos em modo de controle:

  • Ir a definição: permite aceder à definição do objeto selecionado. Este comando está disponível para os seguintes objetos:
    • Métodos projeto: mostra o conteúdo do método numa nova janela do Editor de métodos.
    • Campos: mostra as propriedades do campo no inspetor da janela de estrutura.
    • Tabelas: mostra as propriedades da tabela no inspetor da janela da estrutura.
    • Formulários: a forma Mostra no editor de formulários.
    • Variáveis (local, processo, entre processos ou parâmetro $n):mostra a linha de declaração da variável no método atual ou entre os métodos de compilador onde a variável é declarada.
  • Procurar referências (também disponível no editor de métodos): procura todos os objetos da base (métodos e formulários) na que o elemento atual é referenciado. O elemento atual é o elemento selecionado ou o elemento no qual se encontra o cursor. Este pode ser o nome de um campo, variável, comando, corrente, etc. O resultado da busca mostra-se numa nova janela de resultados regulares.
  • Ir ao cursor: executa a instruções entre o contador de programa (seta amarela) e a linha selecionada do método (onde se encontra o cursor).
  • Definir seguinte instrução: move o contador do programa até a linha selecionada sem executar esta linha ou as linhas intermédias A linha designada só se executa se o utente faz clique num dos botões de execução.
  • Alternar ponto de interrupção (também disponível no editor de métodos): permite alternativamente inserir ou eliminar o ponto de interrupção correspondente à linha selecionada. Esta função modifica o ponto de interrupção permanente: por exemplo, se elimina um ponto de interrupção no depurador, já não aparece no método original.
  • Editar ponto de interrupção (também disponível no editor de métodos): mostra a caixa de diálogo de definição de propriedades do ponto de interrupção. Esta função modifica o ponto de interrupção permanente.



Ver também 

Depurador
Painel de avaliação
Painel de expressão
Painel do canal de chamada
Ponto de Interrupção

 
PROPRIEDADES 

Produto: 4D
Tema: Depurador

 
HISTÓRIA 

 
PALAVRAS CHAVES 

debugger source code pane

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)