Usando CLD - Instruções básicas
Moderador: Moderadores
-
evolver
- Membro Master

- Mensagens: 189
- Registrado em: 28 Ago 2004 01:02
- Localização: Cruz Alta - RS
- Contato:
Usando CLD - Instruções básicas
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.
Sergio "Evolver" Fagundes
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
-
moacirponti
- Usuário Nível 1

- Mensagens: 8
- Registrado em: 15 Mar 2005 10:37
Como usar com RMAKE
Olá.
Como usar o debugger se uso o rmake, ou seja, não consigo compilar apenas CLIPPER XXX.PRG /B...
Como usar o debugger se uso o rmake, ou seja, não consigo compilar apenas CLIPPER XXX.PRG /B...
-
Spitzer
- Usuário Nível 2

- Mensagens: 60
- Registrado em: 15 Ago 2003 04:56
- Localização: Nova Fátima - PR
Olá!
Não uso o Rmake, mas creio que desta forma também funcionará:
No prompt de comando, antes de compilar e linkar, alimente a variável de sistema "clippercmd" com "b", digitando:
set clippercmd=/b
Isto fará com que todos os programas sejam compilados com a opção "/b".
Feito isto, compile e link o sistema.
Com o programa em execução, no momento que quiser ativar o debug, pressione Alt+D.
Ou então, imediatamente antes da linha do programa que você quer a "parada", digite a função:
AltD()
Compile e link.
Não esqueça que antes de compilar e linkar, você deve colocar a seguinte linha no arquivo .lnk:
FILE cld.lib
Lembrando, uso o Clipper 5.2e.
Creio que para versões anteriores à 5.x haja alguma diferença.
Não uso o Rmake, mas creio que desta forma também funcionará:
No prompt de comando, antes de compilar e linkar, alimente a variável de sistema "clippercmd" com "b", digitando:
set clippercmd=/b
Isto fará com que todos os programas sejam compilados com a opção "/b".
Feito isto, compile e link o sistema.
Com o programa em execução, no momento que quiser ativar o debug, pressione Alt+D.
Ou então, imediatamente antes da linha do programa que você quer a "parada", digite a função:
AltD()
Compile e link.
Não esqueça que antes de compilar e linkar, você deve colocar a seguinte linha no arquivo .lnk:
FILE cld.lib
Lembrando, uso o Clipper 5.2e.
Creio que para versões anteriores à 5.x haja alguma diferença.
Abraços,
Ademir Spitzer
Ademir Spitzer
-
evolver
- Membro Master

- Mensagens: 189
- Registrado em: 28 Ago 2004 01:02
- Localização: Cruz Alta - RS
- Contato:
Ná verdade não é file cld.lib e simSpitzer escreveu:Olá!
FILE cld.lib
lib cld.lib
Sergio "Evolver" Fagundes
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
-
Spitzer
- Usuário Nível 2

- Mensagens: 60
- Registrado em: 15 Ago 2003 04:56
- Localização: Nova Fátima - PR
Evolver, não lembro de onde tirei ou quem me passou para fazer assim (não tenho certeza, mas acho que foi o Júnior, de Bragança).
Até procurei no NG para o Clipper 5.2e mas não encontrei nenhuma referência ao arquivo .lnk. Aliás, na documentação do debug não tem nada a ver com nossa prática, pois lá ainda afirma que deve-se chamar a aplicação com CLD.EXE:
CLD [[/43 | /50 | /S] [@<scriptFile>]
<exeFile> [<argument list>]]).
De qualquer forma, desde que migrei para o Clipper 5.2e faço assim (FILE cld.lib) e sempre deu certo.
Mas para tirar mesmo a dúvida, comentei a linha FILE cld.lib e criei a linha LIB cld.lib.
Não deu nenhum erro na linkagem, porém, a aplicação não deu a mínima bola quando pressionei ALT+D.
Desculpe, mas diante disto, posso afirmar que é FILE cld.lib.
Até procurei no NG para o Clipper 5.2e mas não encontrei nenhuma referência ao arquivo .lnk. Aliás, na documentação do debug não tem nada a ver com nossa prática, pois lá ainda afirma que deve-se chamar a aplicação com CLD.EXE:
CLD [[/43 | /50 | /S] [@<scriptFile>]
<exeFile> [<argument list>]]).
De qualquer forma, desde que migrei para o Clipper 5.2e faço assim (FILE cld.lib) e sempre deu certo.
Mas para tirar mesmo a dúvida, comentei a linha FILE cld.lib e criei a linha LIB cld.lib.
Não deu nenhum erro na linkagem, porém, a aplicação não deu a mínima bola quando pressionei ALT+D.
Desculpe, mas diante disto, posso afirmar que é FILE cld.lib.
Abraços,
Ademir Spitzer
Ademir Spitzer
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Caro Sergio,
Eu utilizo o CLD, evidentemente que é a melhor ferramenta para depurar errors dos sistemas nos códigos-fontes. Mas eu não estou conseguindo executar em WIN98, mesmo desativando o meu Norton antivirus. Sempre conseguó executar legal quando inicializo o meu WIN98 em "Modo de segurança".
Poderiam me ajudar a encontrar uma saída melhor do que estar ligando/desligando...
Um clip-abraço :)Pos
Eu utilizo o CLD, evidentemente que é a melhor ferramenta para depurar errors dos sistemas nos códigos-fontes. Mas eu não estou conseguindo executar em WIN98, mesmo desativando o meu Norton antivirus. Sempre conseguó executar legal quando inicializo o meu WIN98 em "Modo de segurança".
Poderiam me ajudar a encontrar uma saída melhor do que estar ligando/desligando...
Um clip-abraço :)Pos
Desativar o Norton, pelo que me lembro (já tive esse problema) não resolve. O que vai resolver é desinstalar. E um detalhe: desinstalar o Norton não é fácil. Não basta usar o painel de controle. Há uma série de procedimentos que precisam ser executados. Se quiser, tenho um roteiro ainda da época em que desinstalei esse "monstro" da minha máquina. Depois disso, passei a usar o AVG.Pablo César escreveu:Mas eu não estou conseguindo executar em WIN98, mesmo desativando o meu Norton antivirus.
Justamente. Em modo de segurança o Norton não é carregado.Sempre conseguó executar legal quando inicializo o meu WIN98 em "Modo de segurança".
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Com o AVG tudo funciona perfeitamente.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
De fato. Me parece, pelos comentários que já vi, que o Norton é o único que realmente atrapalha o CLD. Com os demais, ou pelo menos na maioria, o CLD funciona normalmente. Portanto, a escolha de algum outro anti-vírus vai mais da preferência pessoal.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Olá pessoal!
Tôo tentando usar o CLD e tá dando o seguinte erro num sistema linkado com o exospace:
Qual linkador eu posso usar, blinker, exospace ou rtlink?
Valeu a atenção
Tôo tentando usar o CLD e tá dando o seguinte erro num sistema linkado com o exospace:
Vocês poderia me dar algumas dicas de como usar o CLD?Fatal CLD/100 2 Ex ESTO
Qual linkador eu posso usar, blinker, exospace ou rtlink?
Valeu a atenção
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
BLinker é sempre melhor. Esse erro eu nunca tinha visto até agora. 
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
