GPF error

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

GPF error

Mensagem por Adalberto »

Trabalho com Clipper 5.2 y Blinker 6.0

Desejo mudar de NTX a CDX mais quando escrevo estes comandos

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

Compila e Linkedita bem mais ao tempo de rodar o app me da erro de GPF e indica que o active host e DPMI

Grato pela ajuda

FELIZ ANO NOVO PARA TODOS.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Por acaso o nobre colega usa algum script para a linkedição do programa ? Caso sim, poste aqui no fórum para apreciação.
Este seria o primeiro caminho, visto que as possibilidades são muitas, inclusive hardware defeituoso.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche Adalberto, apesar de eu já te visto aqui no forum que tem gente que usa DBFCDX com o CLIPPER 5.2 , faça o teste usando com o CLIPPER 5.3 e de uma olhada no link abaixo e verefique se vc esta linka as LIB corretas:
https://pctoledo.org/forum/viewto ... highlight=

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

GPF error

Mensagem por Adalberto »

Meu programa principal e muito grande, tudo bom, mais quando aumento a linhas:

Código: Selecionar todos

REQUEST DBFCDX 
RDDSETDEFAULT("DBFCDX") 
DBSETDRIVER("DBFCDX")]
Ele da o erro de GPF, quito essas linhas de comando e tudo volta a normalidade. Agora eu peguei um pouco do prg principal, esse aí:

Código: Selecionar todos

LOCAL aTabla    , cTxt          , cComando
cTitCtaCte      := cCtaCte      := cCtaIngreso  := ''
cCtaGasto       := cCtaCosto    := nFilaInf     := ''
nColumIzq       := nColumDch    := ''
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
Ol_AutoYield( .T. )
CLS
WinFullScr()
//
? 'ATE  AQUI CHEGA'
WAIT
RETURN NIL
Compilo:

CLIPPER Prog

Linkedito com o mesmo script que faço a linkediçao do programa principal (o grande).

Código: Selecionar todos

BLINKER EXECUTABLE COMPRESS 1
BLINKER INCREMENTAL OFF
BLINKER LINK VERSION 3.0
BLINKER LINK XMS ON
BLINKER LINK EMS ON
BLINKER CACHE EMS 40,50%
BLINKER CACHE XMS 40,50%
BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON
BLINKER EXECUTABLE EXTENDED
BLINKER MESSAGE WINK
BLINKER OVERLAY OPSIZE 50
BLINKER EXTMEM BLOCK 512
BLINKER PROCEDURE DEPTH 60
BLINKER EXECUTABLE EXTENDED
BLINKER Overlay PageFrame ON
nobell
OUTPUT Rato.EXE
WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
//
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\Rato.Obj
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\WFullScr.Obj
//
LIB C:\Enin\Blinker\BLXCLP52
LIB C:\Enin\Blinker\BLXRATEX
LIB C:\Enin\Blinker\DBFCDX
LIB C:\Enin\Blinker\Lfn
LIB C:\Enin\Blinker\CLIPPER
LIB C:\Enin\Blinker\EXTEND
LIB C:\Enin\Blinker\TERMINAL
LIB C:\Enin\Blinker\OsLib
LIB C:\Enin\Blinker\CPMI
LIB C:\Enin\Blinker\Nanfor
/NOE;
E roda sem problema

Obrigado por ajudar me.
Avatar do usuário
jairfab
Usuário Nível 3
Usuário Nível 3
Mensagens: 252
Registrado em: 21 Mai 2007 09:43
Localização: São Paulo, Região Leste - Suzano

Mensagem por jairfab »

Utilize o Blinker 7 e Clipper 5.3 provavelmente resolve este problemas, nao esqueca de criar novos indices....
Delpji 7, harbour 3.2, xharbour 1.2.3, Bcc7, Minigw, Minigui 19.11, hwgui 2.20, FiveWin 19.05 Gtwvw, Gtwvg, C# VS 2017
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Dê uma enxugada.
Blinker Incremental Off
Blinker Exec Clipper //F:150, E:1024, R:128
Blinker Exec Comp 1
Blinker Exec Exte
Blinker Memo Pack 5
Blinker Incr Pad 256
@Cl520Max
OUTPUT Rato.EXE
WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
//
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\Rato.Obj
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\WFullScr.Obj
//
LIB C:\Enin\Blinker\BLXCLP52
LIB C:\Enin\Blinker\BLXRATEX
LIB C:\Enin\Blinker\DBFCDX
LIB C:\Enin\Blinker\Lfn
LIB C:\Enin\Blinker\CLIPPER
LIB C:\Enin\Blinker\EXTEND
LIB C:\Enin\Blinker\TERMINAL
LIB C:\Enin\Blinker\OsLib
LIB C:\Enin\Blinker\CPMI
LIB C:\Enin\Blinker\Nanfor
/NOE;
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Adalberto,

Se você só usa o CDX, a linha DBSETDRIVER("DBFCDX") está a mais, sem necessidade (essa função só é necessária quando vc precisa alterar, durante a execução do programa, o uso do CDX e NTX, por ex).

Bastam, então, as linhas
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")


Pergunta: você já tentou descobrir em qual linha o programa está gerando o GPF? Quem sabe você poderia ir mudando o WAIT de posição... Ou, melhor ainda, usar o CLD (debugador do Clipper) e ir executando linha a linha...
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Error base/1004

Mensagem por Adalberto »

Bom dia de Deus a todos.

Por favor, não esqueçam que eu tenho dito que meu programa principal e muito longo por isso não postei ele, mais a coisa e que pegando um pedaço de esse programa: compila. linkedita e roda beleza, (o programa pequeno), então estou ficando doido procurando saber porque o programa principal não roda, da erro de GPF, não chega nem a mostrar a tela de menu, nada, e só quitando as linhas de comando:

Código: Selecionar todos

REQUEST DBFCDX 
RDDSETDEFAULT("DBFCDX") 
DBSETDRIVER("DBFCDX")
O programa principal pode se compilar, linkeditar e roda de maravilha.

Fico muito grato com todos por fornecer ajuda.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Cara, se eu fosse você, primeiro eu resumia o seu script a umas poucas linhas... Deixe o mínimo necessário e depois vá agregando comando a comando, e somente QUANDO PRECISO.

Quem sabe não tem algum comando que tá criando o problema... Dei uma olhada no help do Blinker7 (vc usa o 6, certo?) e veja o que achei:

WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
By default, Blinker will use either XMS (2.0 or higher) or EMS (3.2 or higher) memory in preference to a workfile, when available...

Então, vc está forçando o uso de um arquivo sem necessidade...

BLINKER LINK VERSION 3.0 [você usa a versão 6!]
This command is used to ensure av minimum version of Blinker to process the link script...

Não tá servindo pra nada...

BLINKER LINK XMS ON
This command is used to control whether XMS memory is used at link time by the virtual memory system within Blinker. There is usually no reason to use this command unless a conflict with some other software is suspected...

Pra que vc incluiu este comando?

BLINKER LINK EMS ON
(idem anterior)

BLINKER CACHE EMS 40,50%
This command specifies the amount of EMS (LIM version 4.0 and higher) memory to be used for the overlay cache...
BLINKER CACHE XMS 40,50%
This command specifies the amount of XMS (version 2.0 and higher) memory to be used for the overlay cache...

Você incluiu esses 2 últimos comandos porque enfrentou algum problema de memória?

BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON

Estes, pode simplesmente deletar. O DEFAULT do Blinker já é ON para todos.

BLINKER EXECUTABLE EXTENDED
This command specifies that Blinker should produce a protected mode DOS extended executable. The executable generated will only run on an 80286 processor or above, with a minimum of 1 Mb of available extended memory. If BLINKER EXECUTABLE EXTENDED is specified then ALL link
script commands to do with overlaying are ignored, and a non-overlaid program is always created...

Esta linha está DUPLICADA. Você sabe que ela representa que o seu aplicativo vai rodar em modo protegido e não em modo real, certo?

BLINKER MESSAGE WINK
Pura perfumaria, não serve pra nada. Pode deletar...

BLINKER OVERLAY OPSIZE 50
This command is used to set the operating size of the overlay pool at run time in Kb. It can be set to any value between 12 and 128. The default operating size is 40Kb...

Como você calculou o número 50 e por que?

BLINKER EXTMEM BLOCK 512
O default é 256. Você usa 512 porque enfrentou algum problema?

BLINKER PROCEDURE DEPTH 60
This command is provided as a convenience to CA-Clipper programmers to allow the setting of the program stack based on the maximum procedure nesting depth which will occur in the application at runtime. This depth is the number of procedure calls that are executed before a procedure return...

O default é 50 - o que já é MUITO. Por que vc aumentou pra 60?

BLINKER Overlay PageFrame ON
Dá uma olhada no HELP do Blinker... É um tópico meio grande. Eles dizem que o default é OFF e que:
. Please read this section fully before using this command...
. WARNING: When using this command, your program MUST NOT use ANY functions which access expanded memory via the EMS pageframe...


Bem, voltando ao começo: em meus sistemas, eu uso somente
blinker incremental off
blinker exe ext
search \blinker\lib\blxclp52


Tente resumir o seu script a isso. Aí, vc vai incluindo comandos quando necessário, baseado nos erros que o próprio Blinker apontar. Exemplo? No caso do comando BLINKER PROCEDURE DEPTH 60. Se o default 50 não for suficiente, o Blinker vai reclamar na hora da linkedição, "pedindo" pra aumentar...
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

GPF error

Mensagem por Adalberto »

Caro Eolo,

Muito obrigado pela sua resposta, detalhada e didática.

Resumi o script segundo suas indicações e ainda assim o erro segue; o curioso e que incluso com o script anterior, com linhas desnecessárias, duplicadas, etc. o sistema completo, longo, compila, linkedita y roda beleza, e só aumentar essas três linhas e o erro de GPF aparece. Deleto essas linhas e todo voltam a ser uma maravilha. Tanto assim que eu já instalei o sistema em outras pc´s sem problemas.

O fato e que tirando um pedaço do programa longo, com as três linhas para CDX o erro não aparece nem com o script anterior nem com o script que você, com tanta gentileza propõe.

Desde faz um ano que estou usando o blinker com o script “errado” em diferentes Pc´s, com índices NTX, sem problemas maiores, foi agora que desejei mudar para o CDX e apenas votei essas linhas no inicio, compilei, linkeditei e quando executei o sistema só para fazer uma proba de esses comandos deu o erro.

Posso seguir como antes, com NTX, mais no e bom ficar com a duvida, não e?

Agradeço a ajuda e colaboração de todos vocês.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Adalberto, desculpe se pareci 'rude' em meu post, não tive a intenção. O que eu quis dizer é que, se um comando não é necessário, para que usá-lo? Será que um comando a mais, indevido, não poderia estar causando o problema?

Será que a sua LIB CDX poderia estar corrompida?
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

GPF error

Mensagem por Adalberto »

Eolo,

Mais uma vez, obrigado pela sua atenção.

Não foi “rude”, foi muito gentil al buscar como me ajudar.

Se for a lib CDX corrompida como e que linkedita blz quando o prg e pequeno?

A verdade e que não estou entendendo como pode linkeditar e rodar benzinho quando o prg e pequeno; se for longo, da o erro.

As informações suas são tomadas em conta e testadas.

Por favor. siga me ajudando.
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Mensagem por acelconsultoria »

Adalberto...

Não li todo o post detalhadamente, mas passei um problema parecido com o seu...

Quando eu usava o NTX, com clipper 5.2 e RTLINK, senti a necessidade de mudar para CDX... mas aí, com isso, tive tbem que passar a usar Clipper 5.3b + BLINKER 7.0. Aí, o erro de GPF foi resolvido.

Atente para a versão 5.3b, porque a 5.3a tem uma porrada de bugs.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Bem, já vi acontecer algo semelhante: um colega tinha uma LIB que era de uma versão diferente do Clipper instalado e dava erro na execução do programa dele. Ele trocou a LIB e o problema sumiu.

Então, não custa tentar, certo?

Se vc quiser, informe o seu e-mail (o meu está no perfil) que eu lhe mando a DBFCDX.LIB do Clipper52e.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Adalberto escreveu:Compila e Linkedita bem mais ao tempo de rodar o app me da erro
Na sua situação eu escolheria utilizar a biblioteca SIX, que funciona maravilhosamente bem com o Clipper 5.2e. Caso queira fazer alguns testes, acesse este link e baixe a LIB. São dois arquivos. Rode o demo, consulte os fontes e, na dúvida, poste outra mensagem.
[]'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!
Responder