O termo depurador (debugger) vem do termo bug. Um bug em um método é um erro que você quer eliminar. Quando ocorre um erro, ou quando você precisa monitorar a execução de seus métodos, você pode usar o depurador. Um depurador ajuda você a encontrar bugs, permitindo-lhe percorrer lentamente os seus métodos e analisar informações sobre o método. Esse processo passo-a-passo através de métodos é chamado de depuração.
Clicando no botão de depuração na janela execução de método.
Pressionando Alt + Shift + botão direito do mouse (Windows) ou Control + Option + Comando + clique (Macintosh) enquanto um método está executando, em seguida, selecionando o processo a ser rastreado no menu pop-up:
Clicar no botão Depurar quando um processo é selecionado na página do Processo do Explorador de execução.
Criando ou editando um break point na janela do editor de métodos, ou nas páginas de Quebra e Captura do Explorador de execução.
Nota: só usuários com privilégios de acesso de designer e os usuários que pertençam ao grupo que têm privilégios de acesso à estrutura podem depurar os métodos
.
A janela do depurador (local):
A janela do depurador (remota):
Você pode mover a janela de depuração e / ou redimensionar qualquer um dos seus painéis internos, conforme necessário. Exibir uma nova janela de depuração usa a mesma configuração (tamanho e posição da janela, colocação das linhas de divisão e conteúdo da área que avalia as expressões) como a última janela exibida na mesma sessão.
4D é um ambiente multi-tasking. Se você executar vários processos de usuário, você pode rastreá-los independentemente. Você pode ter uma janela de depurador aberta para cada processo.
A janela do depurador aparece na máquina onde o código é executado.
Com uma aplicacção mono usuário, sempre é mostrado na máquina de aplicação em execução.
Com uma aplicação cliente/servidor, se mostra em 4D remoto para o código que se executa localmente, e como padrão na máquina de servidor para o código que for executado no servidor (por exemplo, um método com a opção de execução no servidor). Se o servidor for executado headless( computadores sem monitores e outros periféricos), não se pode mostrar nenhuma janela de depuração no servidor.
Entretanto, em aplicações cliente/servidor, é possível delegar a um 4D remoto específico a exibição do Debugger para código rodando no servidor. Isto é especialmente útil para aplicações de servidor que rodam headless.. Para fazer isto, em um 4D remoto conectado ao servidor, selecione o comando Attach Remote Debugger no menu Run:
Também pode selccionar a opção Anexxar depurador remoto ao início se quiser depurar automaticamente o código de servidor no 4D remoto.
Notas:
O depurador deve ter sido "separado" do servidor com antecedência. Para mais informações sobre este recurso, consulte Depuração de Máquinas Remotas
O rastreamento é interrompido e a execução recomeça normalmente com o método.
Nota: Shift + F5 ou Shift + clique no botão Sem Trace reinicia a execução. Ele também desativa todos os vestígios da chamadas subseqüentes para o processo atual..
A linha atual do método (a indicada pela seta amarela - chamada contador de programa) é executada, e o passo do depurador salta para a próxima linha. O botão Botão Executar Passo a Passo não entra em sub-rotinas e funções, fica ao nível do método que você está rastreando. Se você quiser também pode rastrear chamadas a sub-rotinas e funções, utilize o botão Executar e entrar.
Na depuração remota, quando a última linha do método é executada, se o método é executado no servidor, o método principal é chamado. Se o método principal for executado no lado remoto, o botão age da mesma forma que o botão Resumir.
Na execução de uma linha que chama outro método (subrotina ou função), este botão faz com que a janela do depurador mostre o método que está sendo chamado e lhe permita passar por esse método. O novo método torna-se o método (top) atual no da janela do depurador. Na execução de uma linha que não chama um outro método, este botão age da mesma forma como o botão Executar passo a passo.
Na depuração remota, ao executar a última linha do método, se o método for executado no servidor, se chama ao método pai. Se o método pai for executado no lado remoto, o botão atua da messma maneira que o botão Retomar.
Se você está traçado sub-rotinas e funções, clicando neste botão permite executar todo o método a ser seguido para voltar para o método chamador. A janela do depurador é trazida de volta para o método anterior na cadeia de chamada. Se o método atual é o último método na cadeia de chamada, a janela do depurador será fechada.
Na depuração remota, quando a última linha do método for executada, se o método for executado no servidor, o método é chamado de método pai. Se o método pai funcionar no lado remoto, o botão age da mesma forma que o botão Retomar.
Na execução de uma linha que cria um novo processo (ou seja, chamando o comando New process), este botão abre uma janela de novo depurador que permite traçar o método do processo recém-criado. Na execução de uma linha que não cria um novo processo, este botão age da mesma forma como o botão Executar passo a passo.
O método é interrompido, e você volta para onde estava antes de começar a executar o método. Se você estava traçando um formulário ou a execução de um método de objeto, em resposta a um evento, ele é interrompido e volta para o formulário. Se você estava traçando um método de execução de dentro do ambiente do aplicativo, você retorna para o ambiente que estava.
O método é interrompido, como se você clicasse em Abortar. Além disso, 4D abre uma janela do Editor de método para o método que estava sendo executado no momento em que o botão Abortar e Editar foi clicado.
Conselho: Utilize este botão quando você souber que são necessárias alterações no código e quando estas mudanças forem necessárias para o exercício de análise dos seus métodos. Depois de terminar com as alterações, execute o método.
Clicando no botão Editar faz o mesmo que clicar no botão Abortar e Editar, mas não aborta a execução atual. O método de execução é interrompido nesse ponto. 4D abre uma janela do Editor de método para o método que estava sendo executado no momento que o botão Editar foi clicado.
Importante: Você pode modificar este método, no entanto, estas alterações não vão aparecer ou serem executados na instância do método a ser seguido na janela do depurador. Depois que o método foi interrompido ou completado com sucesso, as alterações aparecerão na próxima execução do método. Em outras palavras, o método deve ser recarregado assim suas modificações serão levadas em consideração.
Conselho: Utilize este botão quando você sabe que são necessárias alterações no código e quando elas não interferem no resto do código a ser executado ou rastreado.
Conselho: Métodos de Objeto são recarregados para cada evento. Se você estiver rastreando um método de objeto (ou seja, em resposta a um clique de botão), você não precisa deixar o formulário. Você pode editar o método de objeto, salvar as alterações, em seguida, voltar ao formulário e tentar novamente. Para rastrear/alterar os métodos de formulário, você deve sair do formulário e reabri-lo para recarregar o método do formulário. Ao fazer a depuração de uma forma ampla, um truque é colocar o código (que você está depurando) para um método de projeto que você usa como sub-rotina a partir de um método formulário. Ao fazê-lo, você pode ficar no formulário enquanto você depura, edita e testa novamente o formulário, porque a sub-rotina é recarregada a cada vez que é chamado pelo método do formulário.
Salva a configuração atual da janela de depuração (tamanho e posição da janela, colocando uma das linhas de divisão e conteúdo da área que avalia as expressões), de modo que ela será usado por padrão cada vez que o banco de dados for aberto. Esses parâmetros são armazenados no arquivo de estrutura do banco de dados.
exibe no topo: o nome de método ou a classe, nome e protótipo da classe de função que está traçando atualmente
exibido em vermelho embaixo: a ção que causou o aparecimento da janela Debugger
Usando a janela de exemplo mostrada acima, as seguintes informações são exibidas:
O método Clients_BuildLogo é o método que está sendo rastreado.
A janela do depurador apareceu porque ele detectou uma chamada para o comando C_PICTURE e esse comando foi um dos comandos a serem capturados.
Aqui estão as razões possíveis para o depurador aparecer e para a mensagem (exibida em vermelho):
Comando TRACE: Uma chamada para TRACE foi emitida.
Ponto de interrupção atingido: um ponto de interrupção foi encontrado.
Interrupção do usuário: Você usou Alt + Shift + clique com o botão direito (Windows) ou Control + Comando + Option + clique (Macintosh), ou você clicou no botão de rastreamento na página Processo do Explorador de execução.
Captura de uma chamada a Nome do comando: Uma chamada a um comando 4D para ser capturado está a ponto de ser executada.
Passo a passo em novo processo: Você usou o botão Entrar no processo e esta mensagem é exibida na janela do depurador aberto para o processo recém-criado.
Os três primeiros painéis usam listas hierárquicas fácil de navegar para mostrar informações de depuração pertinentes. O quarto, , exibe o código fonte do método que está sendo rastreado. Cada painel tem sua própria função de ajudá-lo em seus esforços de depuração. Você pode usar o mouse para redimensionar verticalmente e horizontalmente a janela do depurador e também de cada painel. Além disso, os três primeiros painéis incluem uma linha pontilhada de separação entre as duas colunas que eles exibem. Usando o mouse, você pode mover esta linha pontilhada para redimensionar as colunas horizontalmente, a sua conveniência.