Depurador
O depurador é útil quando é necessário detetar erros ou monitorizar a execução de métodos. Permite-lhe percorrer o seu código lentamente e examinar a informação. Este processo é designado por "rastreio".
Chamando o depurador
Há várias formas de exibir o depurador:
- Clicar no botão Trace na [janela Syntax Error] (basics.md#syntax-error-window)
- Usando o comando [
TRACE
] (https://doc.4d.com/4dv19/help/command/en/page157.html) - Clicando no botão Depurar na janela Executar método ou selecionando o botão Executar e depurar... no Editor de Código
- Usando Alt+Shift+Botão Direito (Windows) ou Ctrl+Option+Cmd+Click (macOS) enquanto um método está sendo executado, em seguida, selecionando o processo para rastrear no menu pop-up:
- Clicar no botão Trace quando um processo for selecionado na página Process (Processo) do Runtime Explorer.
- Adicionar um ponto de interrupção na janela do Editor de código ou nas páginas Break e Catch do Explorador de execução.
Quando chamada, a janela do depurador fornece o nome do método ou da função de classe que rastreia atualmente e a ação que causa o aparecimento inicial da janela do depurador. Por exemplo, na janela do depurador acima:
- *Clients_BuildLogo é o método que é rastreado
- A janela do depurador apareceu porque detectou uma chamada para o comando
C_PICTURE
e este comando era um dos comandos a ser pego
A exibição de uma nova janela do depurador utiliza a mesma configuração que a última janela exibida na mesma sessão. Se executar vários processos usuário, pode rastreá-los de forma independente e ter uma janela do depurador aberta para cada processo.
A janela do depurador é normalmente apresentada na máquina onde o código é executado. Com uma aplicação monousuário, é sempre apresentado na máquina que executa a aplicação. Com uma aplicação cliente/servidor, é apresentado:
- no 4D remoto para o código que está a ser executado localmente
- no computador do servidor para o código em execução no servidor (por exemplo, um método com a opção executar no servidor).
- Se o servidor estiver a funcionar sem interface, não pode ser apresentada qualquer janela do depurador no servidor, pelo ser necessário utilizar o depurador remoto. Ver Depuración desde máquinas remotas.
- You can also attach the Qodly Studio debugger to a 4D Server application if you need to debug Qodly pages in a deployed environment.
Botões da barra de ferramentas
A barra de ferramentas do depurador inclui vários botões, associados a atalhos predefinidos:
Os atalhos padrão podem ser personalizados na página Atalhos da caixa de diálogo Preferências.
Retomar execução
Interrompe o modo de rastreamento e retoma o curso normal da execução do método.
Shift + F5 o Shift + clic en el botón No Trace retoma la ejecución. Também desativa todas as chamadas TRACE subsequentes para o processo atual.
Executar passo a passo
Executa a linha de método atual, indicada pelo contador de programa (a seta amarela). O depurador passa para a linha seguinte.
O botão Executar não entra em sub-rotinas e funções, mantém-se ao nível do método que rastreia atualmente. Se você quiser rastrear também as chamadas de subrotinas e funções, use o botão Step Into.
Na depuração remota, se o método for executado no servidor, o método principal é chamado após a execução da última linha do método secundário. Se o método pai for executado no lado remoto, o botão Step Over terá o mesmo efeito que o botão No Trace.
Passo a passo detalhado
Quando uma linha que chama outro método (sub-rotina ou função) é executada, clique neste botão para exibir o outro método e percorrê-lo.
O novo método torna-se o atual (topo) método no Chame Chain Pane da janela do Depurador.
Ao executar uma linha que não chama outro método, esse botão tem o mesmo efeito que o botão Step Over.
Step Out
If you are tracing subroutines and functions, clicking on this button allows you to execute the entire method currently being traced and to step back to the caller method. The Debugger window is brought back to the previous method in the call chain. If the current method is the last method in the call chain, the Debugger window is closed.
In remote debugging, on execution of the last line of the method, if the method is executed on the server, the parent method is called. If the parent method is executed on the remote side, the button acts in the same manner as the No Trace button.
Step Into Process
On execution of a line that creates a new process (i.e., calling the New process command), this button opens a new Debugger window that allows you to trace the process method of the newly created process. On execution of a line that does not creates a new process, this button acts in the same manner as the Step Over button.
Abortar
Interrompe a execução do método e regressa ao estado anterior ao início da execução do método:
- Ao rastrear um método formulário ou um método objeto em execução em resposta a um evento: pára e retorna ao formulário.
- Ao rastrear um método em execução no ambiente do aplicativo: pára e retorna ao ambiente.
Abortar e editar
O método que está sendo executado quando você clica no botão Abortar e editar é aberto no Editor de código.
Sugestão: Utilize este botão quando você sabe quais alterações são necessárias no seu código e quando essas alterações são necessárias para prosseguir com o teste dos seus métodos. Quando terminar as alterações, volte a executar o método.
Editar
O método executado no momento em que se clica no botão Editar abre-se no Editor de código.
Se utilizar este botão para modificar um método, as modificações só entram em vigor na próxima vez que este for executado.
Dica: Use este botão quando você souber quais alterações são necessárias no seu código e quando eles não interferem com o resto do código a ser executado ou rastreado.
Botão Salvar parâmetros
Salva a configuração atual da janela do depurador e a torna a configuração padrão. Isto inclui:
- o tamanho e a posição da janela
- a posição das linhas de divisão e o conteúdo da área que avalia as expressões
Estes parâmetros são armazenados no projeto.
Essa ação não está disponível no modo de depuração remota (consulte Depuração de máquinas remotas).