Tivoli Service Desk 6.0 Developer's Toolkit - Guia de Ferramentas e Utilitários
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.
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>
Nota: <nome do arquivo .kbc> deve estar no formato compilado ou analisado para execução.
Se você escolher abrir o Depurador do Developer's Toolkit, a linha que estava executando quando ocorreu o erro será selecionada. Se o debug510.dll não estiver presente, todas as mensagens de erro recebidas não conterão a opção para iniciar o Depurador do Developer's Toolkit.
Nota:
O menu Executar contém dois comandos que podem ser utilizados para sair do Depurador do Developer's Toolkit: Fechar e Abortar.
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 |
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:
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:
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.
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:
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:
Nota: Um visualizador de variáveis pode ser deixado aberto no Depurador do Developer's Toolkit enquanto você trabalha com um aplicativo.
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.
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.
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.
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.
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:
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 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.
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:
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.
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.
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.
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
-->