Página 1 de 1

Debugador

Enviado: 03 Dez 2008 20:08
por rbonotto
Ola pessoal,

Estou começando a usar o blinker junto com clipper5.2e . Antes usava o clipper 5.0 com o seu rtlink.

Uma coisa que usava muito é o debugado do clipper (CLD.EXE) compilando com /B e digitando CLD <nomeprog> e depois ALT+D para ir até o codigo fonte.
Mas com blinker não funciona ! faço igual e ao executar e pressionar ALT+D ele não entra no debugador....

Estou usando assim:

Código: Selecionar todos

DEMO.OBJ: DEMO.PRG
    CLIPPER DEMO       /M /B /P
X100A.OBJ: X100A.PRG
    CLIPPER X100A      /M /B /P
X100A1.OBJ: X100A1.PRG
    CLIPPER X100A1     /M /B /P
....
E um lnk assim:

Código: Selecionar todos

FI DEMO

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE CLIPPER //F:250
BLINKER PROCEDURE DEPTH 140
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 1
BLINKER EXECUTABLE EXTENDED
SEARCH BLXCLP52
LIB clipper
LIB EXTEND
LIB DBFNTX
LIB TERMINAL
LIB CTP52
LIB MMENU

LIB clbc
LIB clbcmat
LIB ptool50
LIB ld50
LIB RELOGIO
LIB newget50

FILE X100A,X200A....

Alguém poderia dar um help ? :)Pos

abs,

Re: Debugador

Enviado: 03 Dez 2008 20:35
por Maligno
Inclua no seu script "FILE CLD.LIB". É como FILE mesmo e não como LIB. No programa coloque o gatilho no local onde quer a parada e execute. Ao chegar no ponto o CLD será invocado.

Re: Debugador

Enviado: 03 Dez 2008 21:43
por rbonotto
Não entendi direito Maligno, o meu script ficaria:

Código: Selecionar todos

FI DEMO

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE CLIPPER //F:250
BLINKER PROCEDURE DEPTH 140
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 1
BLINKER EXECUTABLE EXTENDED
SEARCH BLXCLP52
LIB clipper
LIB EXTEND
LIB DBFNTX
LIB TERMINAL
LIB CTP52
LIB MMENU

LIB clbc
LIB clbcmat
LIB ptool50
LIB ld50
LIB RELOGIO
LIB newget50

[b]FILE CLD.LIB[/b]
FILE X100A,X200A....
Mas como acionar durante a execução ?, não entendi como seria um gatilho para acionar o cld.exe...

Desculpe as burrices, mas sou novo com o blinker...

Re: Debugador

Enviado: 03 Dez 2008 23:58
por Maligno
O script está correto. O gatilho a que mencionei é o evento que vai parar o programa para entrar no debugger. Esse evento é o encontro da função AltD(), que você pode inserir em qualquer parte do programa, diversas vezes. Ela é o breakpoint ou gatilho. Quando encontrada, durante o fluxo de execução, o programa pára e a atividade passa a ser controlada pelo debugger.

Re: Debugador

Enviado: 08 Dez 2008 23:44
por rbonotto
Coloquei assim:

Código: Selecionar todos

WHILE .T.
   AltD()
   tela(01,05,17,75)
   tela(17,05,20,75,'.')
   cab(04,05,75,' ACERVO CADASTRADO')
   cAmPo :={' TITULOS()'}
   DBGOTOP()
   DBEDIT(02,06,16,74,campo,'cT_fta',,,'-','¦')
   EXIT
END
SET KEY 18 TO
SET KEY  3 TO
CLOSE DATABASE
Mas ao passar por ali nada acontece.... :-o

Re: Debugador

Enviado: 09 Dez 2008 01:56
por Maligno
Se ao compilar você usa o switch /b, se no script do blinker você incluiu file cld.lib e se no programa você tem a função altd(), e ainda assim o debugger não entra, é de se supor que o programa não passe pelo local onde está a função altd(). Ao encerrar o programa, o debugger aparece?

Re: Debugador

Enviado: 09 Dez 2008 21:47
por rbonotto
Putz....que burrice a minha :%

Tinha colococado file cld.lib em outro programa....que jééééég rsrsrrs

Valeu, ta funcionando belezinha agora :-Y

Abração