Usando CLD - Instruções básicas
Enviado: 24 Mai 2005 12:48
Usando o CLD para restrear BUGS
Uma das melhores maneiras de se rastrear um problema num progama em clipper é usar o CLD, o Clipper Debugger, esse programa utiliza de uma função do próprio sistema operacional, onde um programa pode executar uma função de debug através de uma interrupção do sistema.
Mas porque estou dizendo isso? Algum de vocês já notou que apenas os programas compilados com a opção /b permitem o debug e aqueles onde não botamos essa opção a gente pode esquecer?
Pois é, o parâmetro /b faz com que o compilador CLIPPER insira um comando de interrupção de debug a cada conjunto de códigos equivalente a um comando em clipper. Assim quando lincarmos o programa esses comandos de interrupção podem parar o programa e fazer com que seja passado o comando para o CLD.
Infelizmente existe um problema nesse caso pois existem diversos programas que tambem se utilizam dessa interrupção para executar funções próprias e acabam interferindo no bom funcionamento do CLD. Entre eles estão os programas da Symantec (famosos Norton qualquercoisa), programas de depuração do C, Pascal, assembler e todo tipo de programa que permita depurar um programa linha por linha de código (algo similar ao debug do dos). Aparentemente apenas os Windows NT, 2K e XP são imunes a esse problema por causa de sua mais completa separação entre as tarefas do MS-Dos assim cada chamada ao prompt de comando é gerenciada separada das demais. Para se usar o CLD nos Windows 9x e ME é necessário desinstalar qualquer aplicativo Symantec e depuradores de programa online.
Como usar o CLD.
Primeiramente precisamos compilar todos os arquivos com a opção /b, mais ou menos dessa forma CLIPPER PROGRAMA.PRG /B, assim será colocada a interrupção a cada linha de código do programa. Depois é só linkar normalmente e pronto.
Executamos o CLD da seguinte forma: CLD [/43|/50 /S] PROGRAMA.EXE parametros do programa
Temos algumas opções extra que podem ser bem interessantes quando temos um monitor VGA ou SVGA a mão (só não vale EGA ou CGA). Todas começando com CLD /opções PROGRAMA.EXE opções_do_programa
/43 - Inicia o CLD em modo 43 linhas
/50 - Inicia o CLD em modo 50 linhas
/S - Quando usamos monitores VGA e nosso programa é todo feito para usar 25 linhas ele muda para o modo de tela de 50 linhas (se disponível), divide a tela ao meio executando o programa na parte de cima e o cld na parte de baixo.
Iniciando o Uso do CLD
O CLD é um programa cuja versatilidade é muito grande e se torna cada vez mais poderoso quanto mais o sabemos aproveitar.
Podemos inciar em um roteiro básico e aproveitar para utilizar ele em nossos programas para debugarmos erros. Para isso precisamos inicialmente conhecer poucos comandos.
F5 - Roda o programa de forma contínua até que seja pressionado ALT+D
F8 - Executa um programa linha por linha
F7 - Executa o programa até encontrar o marcador de linha
TAB - Muda entre as janelas
Quando iniciamos o CLD temos disponíveis temos tres janelas:
MONITOR WINDOW - Monitora o estado das variáveis e permite alterá-las em tempo real
PROGRAM WINDOW - Monitora o andamento do programa e permite visualizar o código do mesmo
COMMAND WINDOW - Essa é a janela mais versátil pois permite executar comandos
Como dito acima a Command Window permite executar comandos e dentre eles está o comando ? que é o mesmo que o ? do Clipper permitindo assim exibir o valor de variáveis e com a experiência você podera usar até conjuntos condicionais e teste de comandos do programa para debugar de maneira mais eficiente. Para usar a Command Window e você está na Program Window não é necessário mudar para essa janela, basta digitar o comando e pressionar ENTER. Aqui vão alguns exemplos de como usar o comando ?.
? variavel_1
? campododbf2
? extenso(variavel) ***Nota: a função extenso tem que existir dentro do programa compilado***
? iif(variavel="N",2,3)
Temos tambem a tecla F6 que abre a janela de bancos de dados. Nela obtemos informações de todos os bancos de dados abertos, índices, banco de dados em uso no momento, dados do registro atual, a única coisa que falta para essa janela é um bom editor de arquivos DBF pois em questão de visualização ela é super completa. Para mudar entre as janelas da janela de DBF basta pressionar a tecla TAB.
Com essas teclas e comandos básicos já podemos iniciar o debug do nosso programa em Clipper e tenho certeza que a maioria dos erros são descobertos apenas com esse roteiro que eu criei.
Uma das melhores maneiras de se rastrear um problema num progama em clipper é usar o CLD, o Clipper Debugger, esse programa utiliza de uma função do próprio sistema operacional, onde um programa pode executar uma função de debug através de uma interrupção do sistema.
Mas porque estou dizendo isso? Algum de vocês já notou que apenas os programas compilados com a opção /b permitem o debug e aqueles onde não botamos essa opção a gente pode esquecer?
Pois é, o parâmetro /b faz com que o compilador CLIPPER insira um comando de interrupção de debug a cada conjunto de códigos equivalente a um comando em clipper. Assim quando lincarmos o programa esses comandos de interrupção podem parar o programa e fazer com que seja passado o comando para o CLD.
Infelizmente existe um problema nesse caso pois existem diversos programas que tambem se utilizam dessa interrupção para executar funções próprias e acabam interferindo no bom funcionamento do CLD. Entre eles estão os programas da Symantec (famosos Norton qualquercoisa), programas de depuração do C, Pascal, assembler e todo tipo de programa que permita depurar um programa linha por linha de código (algo similar ao debug do dos). Aparentemente apenas os Windows NT, 2K e XP são imunes a esse problema por causa de sua mais completa separação entre as tarefas do MS-Dos assim cada chamada ao prompt de comando é gerenciada separada das demais. Para se usar o CLD nos Windows 9x e ME é necessário desinstalar qualquer aplicativo Symantec e depuradores de programa online.
Como usar o CLD.
Primeiramente precisamos compilar todos os arquivos com a opção /b, mais ou menos dessa forma CLIPPER PROGRAMA.PRG /B, assim será colocada a interrupção a cada linha de código do programa. Depois é só linkar normalmente e pronto.
Executamos o CLD da seguinte forma: CLD [/43|/50 /S] PROGRAMA.EXE parametros do programa
Temos algumas opções extra que podem ser bem interessantes quando temos um monitor VGA ou SVGA a mão (só não vale EGA ou CGA). Todas começando com CLD /opções PROGRAMA.EXE opções_do_programa
/43 - Inicia o CLD em modo 43 linhas
/50 - Inicia o CLD em modo 50 linhas
/S - Quando usamos monitores VGA e nosso programa é todo feito para usar 25 linhas ele muda para o modo de tela de 50 linhas (se disponível), divide a tela ao meio executando o programa na parte de cima e o cld na parte de baixo.
Iniciando o Uso do CLD
O CLD é um programa cuja versatilidade é muito grande e se torna cada vez mais poderoso quanto mais o sabemos aproveitar.
Podemos inciar em um roteiro básico e aproveitar para utilizar ele em nossos programas para debugarmos erros. Para isso precisamos inicialmente conhecer poucos comandos.
F5 - Roda o programa de forma contínua até que seja pressionado ALT+D
F8 - Executa um programa linha por linha
F7 - Executa o programa até encontrar o marcador de linha
TAB - Muda entre as janelas
Quando iniciamos o CLD temos disponíveis temos tres janelas:
MONITOR WINDOW - Monitora o estado das variáveis e permite alterá-las em tempo real
PROGRAM WINDOW - Monitora o andamento do programa e permite visualizar o código do mesmo
COMMAND WINDOW - Essa é a janela mais versátil pois permite executar comandos
Como dito acima a Command Window permite executar comandos e dentre eles está o comando ? que é o mesmo que o ? do Clipper permitindo assim exibir o valor de variáveis e com a experiência você podera usar até conjuntos condicionais e teste de comandos do programa para debugar de maneira mais eficiente. Para usar a Command Window e você está na Program Window não é necessário mudar para essa janela, basta digitar o comando e pressionar ENTER. Aqui vão alguns exemplos de como usar o comando ?.
? variavel_1
? campododbf2
? extenso(variavel) ***Nota: a função extenso tem que existir dentro do programa compilado***
? iif(variavel="N",2,3)
Temos tambem a tecla F6 que abre a janela de bancos de dados. Nela obtemos informações de todos os bancos de dados abertos, índices, banco de dados em uso no momento, dados do registro atual, a única coisa que falta para essa janela é um bom editor de arquivos DBF pois em questão de visualização ela é super completa. Para mudar entre as janelas da janela de DBF basta pressionar a tecla TAB.
Com essas teclas e comandos básicos já podemos iniciar o debug do nosso programa em Clipper e tenho certeza que a maioria dos erros são descobertos apenas com esse roteiro que eu criei.