Página 1 de 1

erro de GPF com blinker 7

Enviado: 28 Ago 2007 08:51
por rossine
Olá,

Meu sistema em clipper + blinker está abortando em pontos diferentes sem explicação e em tempo indefinidos, ou seja, as vezes no mesmo lugar onde o sistema abortou com GPF, na re-entrada não ocorre o erro. Minha aplicação hoje tem um arquivo .EXE e 14 .Dll´s.

o meu arquivo .lnk para o .EXE está assim:

Código: Selecionar todos

NOBELL
VERBOSE  0
BLINKER  MESSAGE        WINK         
BLINKER  EXECUTABLE                  EXTENDED
BLINKER  EXECUTABLE     COMPRESS     1
BLINKER  LINK           PAGEFRAME    ON
BLINKER  MEMORY         CLEAR        0
BLINKER  MEMORY         PACK         0
BLINKER  EXECUTABLE     NODELETE
BLINKER  INCREMENTAL                 OFF
BLINKER  EXECUTABLE     ALIGNMENT    32
BLINKER  PROCEDURE      DEPTH        128
PACKCODE
PACKDATA
search BLXCLP52
file   BLXCLP52

lib \FUNCky\LIB\FUNCKY52
lib \FUNCky\LIB\FUNCKYVM
lib \FUNCky\LIB\FUNCKY2C

file ntxerr
file rddsys
file __wait

file MEMO
file index

@cl520max
@ntx520

lib \cli53dos\lib\DBFNTX
lib \cli53dos\lib\EXTEND

@cdx520
file \cli53dos\obj\cdxlock
lib \cli53dos\lib\DBFCDX
lib \cli53dos\lib\_DBFCDX

lib   nanfor
lib  oslib
lib  cpmi

file ARQ_EXE

output ARQ_EXE

o meu arquivo .lnk para as .Dll´s está assim:

Código: Selecionar todos

NOBELL
VERBOSE  0

BLINKER  MESSAGE        WINK         
BLINKER  EXECUTABLE                  EXTENDED
BLINKER  EXECUTABLE     COMPRESS     1
BLINKER  LINK           PAGEFRAME    ON
BLINKER  MEMORY         CLEAR        0
BLINKER  MEMORY         PACK         0
BLINKER  EXECUTABLE     NODELETE
BLINKER  INCREMENTAL                 OFF
BLINKER  EXECUTABLE     ALIGNMENT    16
BLINKER  PROCEDURE      DEPTH        64

PACKCODE
PACKDATA

file ARQ_001

file bldclp52

defbegin
   library      MODULO

   exports

     FUN_001
     FUN_002
     FUN_003
defend

nodeflib

output MODULO

Já fiz de tudo e não sei mais o que fazer :( Será que as configurações acima estão corretas ? Alguma Dica ?

Obrigado,

Rossine.

Enviado: 28 Ago 2007 10:37
por Eolo
Arriscar umas coisas:

a) o BLINKER MESSAGE WINK é pura perfumaria. Eu deletaria essa linha...

b) vc usa BLINKER EXECUTABLE EXTENDED = modo protegido, mas usa também BLINKER MEMORY CLEAR 0 (modo real). (?).

Além disso, o HELP do Blinker diz (sobre o MEMORY CLEAR): "This command causes Blinker to clear all of conventional memory above the stack through to the top of memory with the decimal value specified (0 - 255) for DOS real mode programs. This can be used to help identify problems with uninitialised memory etc., and programs should NOT normally be shipped with this option enabled. Memory is cleared before the program starts executing."

c) BLINKER MEMORY PACK 0... segundo o HELP, parece ser coisa do Clipper Summer e não devia estar aí, já que vc deve usar Clipper 52 ou 53...

a) vc faz search BLXCLP52 mas, mais à frente, há referência a uma pasta "cli53dos". Será que vc não está misturando Clipper 52 com 53, não? Qual Clipper vc usa?

d) BLINKER LINK PAGEFRAME ON tá chovendo no molhado. O default já é ON. Eu deletaria essa linha.

e) BLINKER EXECUTABLE NODELETE... Este comando faz o EXE ser criado mesmo que algum objeto externo esteja faltando. Eu, particularmente, não vejo por que usá-lo.

f) BLINKER EXECUTABLE ALIGNMENT 32 e BLINKER PROCEDURE DEPTH 128: vc incluiu esses comandos por ter experimentado algum problema antes?

g) vc usa alguma função pra aliviar o uso da CPU, como a OL_AutoYield()?

Enviado: 28 Ago 2007 10:47
por Eolo
Complementando:

h) PACKCODE. Pode deletar esta linha. O code packing já é habilitado por default.

i) me parece que a linha FILE BLXCLP52 está a mais. Acho que deixar só a linha SEARCH BLXCLP52 já revolve.

Enviado: 28 Ago 2007 11:09
por rossine
Olá Eolo,

a) o BLINKER MESSAGE WINK é pura perfumaria. Eu deletaria essa linha...
OK

b) vc usa BLINKER EXECUTABLE EXTENDED = modo protegido, mas usa também BLINKER MEMORY CLEAR 0 (modo real). (?).
OK tirei "BLINKER MEMORY CLEAR 0"

a) vc faz search BLXCLP52 mas, mais à frente, há referência a uma pasta "cli53dos". Será que vc não está misturando Clipper 52 com 53, não? Qual Clipper vc usa?
Eu uso o 52e com algumas libs do 53

d) BLINKER LINK PAGEFRAME ON tá chovendo no molhado. O default já é ON. Eu deletaria essa linha.
OK. Tirei

e) BLINKER EXECUTABLE NODELETE... Este comando faz o EXE ser criado mesmo que algum objeto externo esteja faltando. Eu, particularmente, não vejo por que usá-lo.
OK. Tirei, preciso disto somente nos lnk´s das dll´s.

f) BLINKER EXECUTABLE ALIGNMENT 32 e BLINKER PROCEDURE DEPTH 128: vc incluiu esses comandos por ter experimentado algum problema antes?
Eu estava usando uma versão anterior do blinker e ao gerar o .exe dava um erro falando algo assim: "new .exe large blablabla". Atualizando
para o blinker 7 retirei estas linhas e compilou sem problemas.

g) vc usa alguma função pra aliviar o uso da CPU, como a OL_AutoYield()?
Sim. Uso esta função e agora inclui tambem a blicplrel()

h) PACKCODE. Pode deletar esta linha. O code packing já é habilitado por default.
OK. tirei

i) me parece que a linha FILE BLXCLP52 está a mais. Acho que deixar só a linha SEARCH BLXCLP52 já revolve
Se eu tiro esta linha, ao executar o programa o blinker acusa o erro: BLINKER : 1219 : BLXCLPnn.OBJ must be linked to the main .EXE

Vou ver se com estas mudanças + o blinker 7 + algumas mudanças em meus fontes inluindo a chamada a função memory(-1) resolve
meu problema.

No mais obrigado,

Rossine.

Enviado: 28 Ago 2007 11:26
por Eolo
Eu uso o 52e com algumas libs do 53
Primeira vez que eu sei de alguém fazendo isso... Dá certo??

Bão, eu tenho a impressão que é como usar álcool num carro a gasolina: pode até funcionar, mas não do jeito que deveria, do jeito que foi projetado para...

Será que os "erros" aleatórios não estão ocorrendo por causa disso, não? Por que vc usa 2 versões em conjunto?

Enviado: 28 Ago 2007 11:30
por Eolo
Se eu tiro esta linha, ao executar o programa o blinker acusa o erro: BLINKER : 1219 : BLXCLPnn.OBJ must be linked to the main .EXE
Eu tinha o mesmo problema e resolvi incluindo o path completo no comando:
search c:\blinker\lib\blxclp52

Enviado: 28 Ago 2007 12:14
por Eolo
Um outro detalhe: vc usa a FUNCky, certo? Dá uma conferida se ela tem alguma ressalva para ser linkada com o Blinker7 em modo protegido...