Tudo OK ??? SAV10SEG e SAV10OFF !!!

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Tudo OK ??? SAV10SEG e SAV10OFF !!!

Mensagem por fladimir »

E ai galera, satisfação novamente estar participando do fórum pena que desta vez não contribuindo com respostas... mas quem sabe com uma questão que seja util a muitos....

Meu sistema trabalha ok redondo sem problemas mas algo me intriga desde que há alguns meses passei a linkar o sistema do modo real para o protegido... tudo ok sem problemas só que após a linkagem mostra o seguinte :



Blinker 7.00 DOS Extender - RC 2
Copyright (c) Assembler Software Manufacturers Inc, 1992-2002.


(__) (__) BLINKER DOS Extender and Windows Linker 7.00

___ Blink and you'll miss it !!

Copyright (c) Assembler Software Manufacturers, Inc. 1990-2002
All Rights Reserved. Serial # ß06/03/02. Fax (804) 784-2357.

BLINKER : 1115 : CTP.LIB(NNETCALL) : 'SAV10SEG' : unresolved external
BLINKER : 1115 : CTP.LIB(NNETCALL) : 'SAV10OFF' : unresolved external

BLINKER : link was successful

SISAD.EXE (0.8 seconds)



Pessoal eu pesquisei na Net e fiz uma busca no fórum... e encontrei somente um tópico a respeito com a resposta do nosso amigo Marcelo "Clipper" que bastava linkar junto o arquivo CTUSP.OBJ ok sem problemas realmente eu fiz isto e a mensagem acima sumiu só q em contra partida qdo tento entrar no meu sistema q estava redondo mesmo com a mensagem SAV10... ele da erro, ou melhor o seguinte erro:




BLX286 : 1313 : exception error 0D : general protection fault, code = B800h

Active host is DPMI (ß7.00 iP6 15360 Kb)

Reg Value Limit Base Flags Segment Module File
CS 02FF CDDB 029F7BEC FB00 20 SISAD C:\SISAD\SISAD.EXE
DS 036F FFFF 029966FC F300 2E SISAD C:\SISAD\SISAD.EXE
ES 0040 ****
SS 036F FFFF 029966FC F300 2E SISAD C:\SISAD\SISAD.EXE

Código: Selecionar todos

 54 8B 3E 8A 54 A1 8C 54 [IP] 8E C0 B4 FE 55 CD 10 5D 8C C0

[Registers]  AX=B800  BX=0200  CX=0000  DX=0000   CS:IP=02FF:AFE5
             SI=BC2C  DI=0000  BP=9C9A  SP=9C80
             FL=3286  NV UP EI NT NG NZ NA PE NC

[Stack value SS] 001A 9C9A AD0D 02FF 3246 9C9A BC2C 0006 0040 036F AF81 02FF
            [SP] 0006 BC2C 036F 036F 980B 02FF C29E 02BF D073 02BF 0006 BC2C

[Stack frame SS] BC2C 036F 036F 980B 02FF C29E 02BF D073 02BF 0006 BC2C D232
            [BP] 9CAC 2F18 02F7 9CA6 036F 0000 0004 510B 0006 9CBE 3058 0006
[/b]
[/color]

Tudo bem meu sistema roda com a mensagem do SAV10... mas acho que tem algo errado mas não consegui entender.... Acho que o certo seria ser sem a mensagem do SAV10....

Caso alguém saiba o que ocorre fico desde já grato...


Segue algumas informações possivelmente úteis:

* Clipper 5.2e
* Blinker 7.0
* Informações do arquivo CTUSP.OBJ 01/09/1995 04:52 28.146 bytes

Script para linkar:

[color=darkblue]
[b]
BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE EXTEND
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 1
BLINKER PROCEDURE  DEPTH 70

BEGINAREA
  FI Prin1, Prin2, Prin3, Prin4
  fi __wait_b
  fi timeslick
  FI CTUSP
ENDAREA

SEARCH C:\CLIPPER5\BLINKER7\LIB\BLXCLP52.lib
SEARCH C:\CLIPPER5\BLINKER7\LIB\BLXRATEX.lib

LIB CLIPPER
#LIB APIBLI
LIB FUNCKY52
LIB FUNCKYVM
LIB FUNCKY2c
LIB CTP
LIB BLNET
LIB PT52
LIB DBFCDX
LIB FAST52

OUTPUT SISAD
[/b]
[/color]

Ok.... Ah... Já antecipando talvez uma suposta resposta de que seja uma das Libs acima... o porque de se eu compilar e linkar o sistema sem o arquivo CTUSP.OBJ, o sistema trabalha redondo ? Caso seja esta a resposta de algum colega.

Desde já, Obrigado....
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Tudo OK ??? SAV10SEG e SAV10OFF !!!

Mensagem por Maligno »

Realmente, as funções SAV10SEG e SAV10OFF estão contidas no objeto CTUSP. Ele precisa ser incluído no seu script para resolver o problema de "unresolved external". Mas o programa funciona mesmo com esse erro por um simples motivo: essas funções nunca são chamadas. Elas estão numa porção qualquer de código que nunca é executado. Mas, como estão ali, seus símbolos se tornam referências que precisam ser resolvidas. Daí o erro.

A informação [Registers] AX=B800 dá a dica de que houve acesso ilegal à RAM de vídeo. Logo, é de se supor que você está utilizando uma função que acessa a RAM de vídeo de uma forma que é tolerada apenas no modo real. É estranho que antes, sem o objeto CTUSP, não dava problema. Mas o fato é inegável: o problema é originado em um acesso ilegal.
Minha dica é você usar o utilitário BLIGPF pra saber qual função está causando a GPF. Gere um mapa e execute o BLIGPF após a GPF aparecer.

Código: Selecionar todos

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE EXTEND
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 1
BLINKER PROCEDURE  DEPTH 70

BEGINAREA
  FI Prin1, Prin2, Prin3, Prin4
  fi __wait_b
  fi timeslick
  FI CTUSP
ENDAREA

SEARCH C:\CLIPPER5\BLINKER7\LIB\BLXCLP52.lib
SEARCH C:\CLIPPER5\BLINKER7\LIB\BLXRATEX.lib
1) Se você usa o modo protegido, qualquer comando relativo à overlays se torna totalmente inócuo.
2) O objeto __wait_b existe para resolver um problema que havia na CATools (há quem ache diferente). Se você já está com a CATools atualizada, não precisa mais dele. Mas é só testar: remova-o temporariamente pra ver o que acontece. Eu não uso mais.
3) O nome é TimeSlic, sem o k final; apesar de que esse k não tem efeito. :)
4) Pode me explicar porque usar a biblioteca BLXRATEX? É necessária? Pra quê ela serve?

LIB CLIPPER
#LIB APIBLI
LIB FUNCKY52
LIB FUNCKYVM
LIB FUNCKY2c
LIB CTP
LIB BLNET
LIB PT52
LIB DBFCDX
LIB FAST52


À primeira vista eu até poderia dizer que há algumas LIBs suspeitas pela GPF (exemplo: as FUNCKYs, PT52 e FAST52 (desconfio mais desta - intuição)), mas como você afirma que tudo funciona perfeitamente sem o CTUSP, deixo a seu critério. Faça o teste com o BLIGPF. É o melhor caminho.
Em última hipótese você pode tentar reinstalar o BLinker/CAtools/Clipper. Já vi casos em que GPFs apareciam depois de um programa ter sido montado por meio de uma LIB corrompida.

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Outra coisa,

Tente colocar a BLXCLP52 na linha LIB. o lance de usar SEARCH faz com que esta LIB seja acrescentado ao EXE antes ou depois de uma LIB primordial causando problemas.

O fato de seu EXE ser criado mesmo com as unresolved externals e porque voce esta usando BLINKER EXECUTABLE NODELETE no .LNK.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mensagem por fladimir »

Maligno e Rochinha... grandes gurus do conhecimento... sempre leio dicas de vcs no fórum e sempre me foram úteis.... desde já agradeço a atenção de ambos a este mero clippeiro dentre tantos....

Bom vamos lá... Agradecimentos feitos... vamos então a parte prática da coisa.... li tudo com muita atenção e vou dar uma analisada quanto aos vossos comentários e depois posto os resultados e/ou dúvidas. Só uma coisa eu verifiquei aki o BLIGPF faz parte do blinker mas como utilizo ele ?


Atenciosamente

Fladimir
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mensagem por fladimir »

Olha só dei uma fuçada aki e descobri q tem q ser gerado um mapa como o Amigo Maligno mencionou e eu adicionei ao Script MAP S,A e depois gerei o EXE e executei e depois chamei BLIGPF e ele mostrou o seguinte:



BLIGPF v6.0 - Extracts GPF Error Information From Blinker 3.x-6.x MAP Files
(c) 1994-1998 Blink, Inc. All Rights Reserved. Credits to Loren Scott.

Scanning SISAD.MAP: 4520

Symbol Address : 0020:8CEC
Symbol Type : Res
Symbol Name : __VIDEOINIT
Offset Into Func: 1CBh




Blz só que eu procurei no meu sistema e não achei uma chamada a esta função... vou dar uma olhada nas bibliotecas q estou utilizando e verificar se encontro... mas caso saibam de qual ela faz parte, melhor....


Obrigado....

Achei é na Funcky vou ver o q faço e depois posto os resultados....
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

VideoInit parece ser da Fast, mas se esta faltando é porque faz parte de outra biblioteca, mas neste caso o erro pode indicar que esta função existe e que a mesma provocou um erro em dado momento de acesso ao video.

Acho que o Maligno já havia postado algo.

Em todo o caso, pelo fato de voce usar trocentas LIBs, verifique se todas são compativeis, ou seja, todas são para modo protegito ou para real.

Verifique nos LNKs exemplos destas LIBs se as mesmas não requerem um .OBJ a ser linkado no inicio do aplicativo para sanar o problema.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder