Tivoli Service Desk 6.0 Developer's Toolkit - Guia de Ferramentas e Utilitários

Capítulo 2: Depurador do Developer's Toolkit

Retornar ao Índice


Introdução

O Depurador do Developer's Toolkit é utilizado para depurar os programas do Developer's Toolkit. Utilizando o Depurador do Developer's Toolkit, você pode rever a execução passo a passo do código de tempo de execução.

As seções a seguir descrevem as técnicas básicas para trabalhar com o Depurador do Developer's Toolkit. Informações adicionais sobre como trabalhar com visualizadores diferentes estão contidas nas seções seguintes.

Como Abrir e Fechar Depurador do Developer's Toolkit

Como Abrir o Depurador do Developer's Toolkit

Há vários modos para iniciar o depurador do Developer's Toolkit. O Depurador do Developer's Toolkit inicia no modo passo a passo; ou seja, a execução do código é interrompida. Você pode, então, utilizar escalonar para dentro, escalonar de um lado a outro ou escalonar para fora para depurar o código. Para obter mais informações, consulte a seção Como Rastrear Caminhos de Execução no Código posteriormente nesta seção.

KML -t <.kbc file name>

Como Sair do Depurador do Developer's Toolkit

O menu Executar contém dois comandos que podem ser utilizados para sair do Depurador do Developer's Toolkit: Fechar e Abortar.

Codificar o Depurador do Developer's Toolkit

Introdução

O Depurador do Developer's Toolkit permite depurar sem que o código fonte real esteja presente. (O que você vê no Depurador do Developer's Toolkit não é uma cópia exata do código fonte.) O processo de reorganização do código fonte resulta nas seguintes alterações:

Origem Depurador do Developer's Toolkit
x :=3*(5+4); x := 27;
Origem Depurador de Developer's Toolkit
x :=c *(a+b); x :=c*a+b;
Origem Depurador do Developer's Toolkit
3 de junho 1997 3, 6, 1997

Como Trabalhar com Código

Visão Geral

O Depurador do Developer's Toolkit tem um visualizador de códigos que exibe todos os módulos em um arquivo .kb. Estes são:

Como visualizar funções

O separador Léxico, localizado à direita do visualizador de códigos, fornece uma exibição de alto nível da estrutura de um aplicativo. Ele contém uma árvore dos módulos em seu programa, assim como as funções correspondentes em cada módulo.

Para selecionar uma função para exibição:

  1. No separador Léxico, clique no módulo contendo a função que você deseja visualizar.
  2. Dê um clique na função a ser visualizada.
  3. Nota: O Depurador do Developer's Toolkit exibe automaticamente as funções quando encontra um ponto de interrupção. Para obter mais informações sobre pontos de interrupção, consulte a seção Pontos de Interrupção posteriormente neste capítulo.

Como visualizar variáveis

Os visualizadores de variáveis são utilizados para ver os dados de armazenamento e caminhos de acesso para variáveis locais e globais.

Você pode visualizar uma variável nos seguintes modos:

Atualizar automaticamente as variáveis

Um visualizador de variáveis mostra informações para todos os campos em um registro. Se algum campo alterar seu valor, o visualizador de variáveis inteiro é atualizado.

Nota: Se o registro que está sendo acessado pelo visualizador de variáveis for grande, poderá levar algum tempo para o visualizador de variáveis atualizar-se.

Para definir uma variável para atualização automática:

  1. Na janela de código, dê um clique duplo em um nome de variável ativo.
  2. Selecione a caixa de opções Atualizar Automaticamente.

Nota: Um visualizador de variáveis pode ser deixado aberto no Depurador do Developer's Toolkit enquanto você trabalha com um aplicativo.

Como fechar um visualizador de variáveis

A janela de variável só pode ser fechada manualmente, escolhendo o menu do sistema ou escolhendo Fechar, na caixa de diálogo Visualizador de Variáveis.

Como visualizar pilhas

A pilha está localizada abaixo do visualizador de código. Dar um clique em uma função na pilha faz a função aparecer no visualizador de códigos com a linha atual destacada.

Nota: As funções do Developer's Toolkit são recorrentes, significando que você pode escalonar uma função várias vezes na mesma sessão do Depurador do Developer's Toolkit. O nome da função aparece no visualizador de pilhas para cada recorrência.

Quando você sai de uma função, seu nome desaparece da pilha.

Como Rastrear Caminhos de Execução no Código

Introdução

Utilizando o Depurador do Developer's Toolkit, você pode rastrear o caminho de execução de um aplicativo. Para fazer isto, o Depurador do Developer's Toolkit fornece três opções:

Escalonar para dentro executa a linha seguinte do código e, se existir uma chamada de função, escalona para dentro da função. Escalonar de um lado a outro executa a linha seguinte do código sem escalonar para dentro das chamadas de função. Escalonar para fora executa o código até o fim da função atual.

Você pode escalonar para dentro, para fora ou de um lado a outro o código escolhendo os comandos a partir do menu Executar, ou dando um clique nos botões correspondentes na barra de ferramentas do Depurador do Developer's Toolkit. Além disso, os atalhos do teclado são fornecidos:

À medida que você trabalha com o Depurador do Developer's Toolkit, trabalha em vários níveis de chamadas de função. Cada função pode ter chamadas de função incorporadas.

Como escalonar para dentro uma função

O Depurador do Developer's Toolkit permite escalonar para dentro as funções em seu código e exibir as ações definidas na função. Quando você escalonar para dentro o código, lembre-se destes pontos:

Você pode proceder de uma das seguintes formas para escalonar para dentro do código:

Você pode continuar escalonando uma função para avançar para a próxima ação definida na função. Eventualmente, você alcança uma instrução END. Nesse ponto, pressionar CTRL + I novamente o leva de volta ao ponto na função de chamada onde você escalonou no código.

Como escalonar para fora de uma função

Quando você escalona para fora de uma função, a função, procedimento ou rotina de tratamento de eventos atual é executada sem rastreamento; você não vê a execução linha por linha do código. O rastreamento retoma na primeira instrução após a chamada.

Nota: Se você escalona para fora de uma rotina de tratamento de eventos, o rastreamento retoma na instrução que gerou o evento. Se mais de um evento foi gerado, o rastreamento retoma no início do evento seguinte.

Você pode escalonar para fora do código sempre que a execução é interrompida no corpo de uma função ou rotina de tratamento de eventos. Você pode também escalonar para fora do código se a execução tiver sido parada em um ponto de interrupção.

Você pode proceder de uma das seguintes formas para escalonar para fora do código:

Como escalonar de um lado a outro do código

Além de escalonar para dentro e para fora do código, você pode escaloná-lo de um lado a outro. Escalonar de um lado a outro do código rastreia o caminho de execução no nível de instrução. A execução continua até que a próxima instrução seja alcançada.

Nota: A execução é interrompida se houver erros ou pontos de interrupção na função que foi escalonada de um lado a outro.

Você pode proceder de uma das seguintes formas para escalonar de um lado a outro o código:

Pontos de Interrupção

Visão Geral

Pontos de interrupção são um método de parar a execução do código de tempo de execução com o objetivo de verificar o status atual da execução. Quando um ponto de interrupção é encontrado durante a execução, o Depurador do Developer's Toolkit exibe a função com a linha contendo o ponto de interrupção selecionado.

Nota: Não defina pontos de interrupção em uma rotina de tratamento de eventos enquanto ela estiver processando $MsgDDEInitiate. $MsgDDEInitiate distribui uma mensagem para os aplicativos e bloqueia a fila de menagens até que uma resposta seja retornada. Disparar um ponto de interrupção inicia uma rotina de tratamento de eventos que aguarda por uma resposta da fila de mensagens (bloqueada). Isto resulta em um bloqueio, que bloqueia efetivamente a interface com o usuário.

Como definir pontos de interrupção temporários

Os pontos de interrupção temporários existem somente enquanto um programa do Developer's Toolkit é executado. Os pontos de interrupção temporários são limpos automaticamente quando você abandona a sessão do Depurador do Developer's Toolkit. Você define estes pontos de interrupção à medida que interage com os visualizadores de funções.

Para definir um ponto de interrupção temporário:

  1. Dê um clique em uma linha na janela de código. O símbolo * aparece para indicar o ponto de interrupção.

Nota: Os pontos de interrupção temporários devem ser definidos em instruções que podem ser executadas. Você não pode definir pontos de interrupção em linhas que começam com instruções ELSE e ELSEWHEN.

Como definir pontos de interrupção estáticos

Você pode colocar pontos de interrupção estáticos no código fonte do programa Developer's Toolkit, utilizando a instrução BreakPoint. Uma instrução BreakPoint pode ser incluída sempre que houver um "ponto de interesse", como o início de uma chamada de função ou evento. Isto permite descontinuar o aplicativo em um ponto de parada lógico e rever o estado atual do aplicativo. O único modo de remover uma instrução BreakPoint é excluí-la do código fonte e reanalisar o aplicativo.

Outras utilizações de BreakPoint

Você pode criar um comando de menu para associar à instrução BreakPoint. Isto permite iniciar o Depurador do Developer's Toolkit a partir do aplicativo.

O Depurador do Developer's Toolkit não executará se o debug510.dll não estiver presente.

Como Depurar Janelas e Caixas de Diálogo

Visão Geral

Você pode depurar janelas e caixas de diálogo definindo um ponto de interrupção em WinCreate ou DlgCreate. Estas instruções identificam rotinas de tratamento de eventos que processam eventos de janela.

Para rastrear a execução de WinCreate, escalone para dentro de WinCreate e, em seguida, escalone para fora de cada mensagem gerada.

Nota: Não utilize o Depurador do Developer's Toolkit para rastrear pintura, ativação ou processamento do mouse.


Tivoli Service Desk 6.0 Developer's Toolkit - Guia de Ferramentas e Utilitários

Retornar ao Índice

Copyright

-->