Unrecoverable Error 650: Processor Stack Fault

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Adams
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 11 Nov 2004 17:41

Unrecoverable Error 650: Processor Stack Fault

Mensagem por Adams »

Boa Tarde Pessoal
Meu Nome é João e sou novo no forum.

Pessoal,tenho um programa em clipper que esta retornando a seguinte mensagem:

Unrecoverable Error 650: Processor Stack Fault

Mas verificando o codigo fonte, fui linha a linha e verifiquei que o mesmo esta dando erro na hora que abre um arquivo NTX (hora que ele tenta carregar). Ja deletei o NTX, e o erro continua. Ja limpei o DBF e recriei o arquivo e nada. Alguem sabe o que pode estar acontecendo

Grato pela atenção
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Caro colega,

Não tenho e nem me lembro quando tive esse tipo de erro, mas recentemente copiei a resposta de um colega em um forum sobre esse mesmo problema, vou transcrever abaixo o que copiei talvez possa lhe ajudar:

"Esse erro acontece quando uma função chama outra e essa função que foi chamada chama a anterior novamente, diversas vezes."

O problema pode ser simplesmente que o erro que o Clipper esta retornando (650) e originado dos parametros do Sistema Operacional que ele esta rodando.
Por Exemplo: O aplicativo .EXE esta em um servidor NT e cliente W95/98, e existe um erro no codigo. O Erro no programa clipper sempre volta (650).
Tente simular o sistema em disco local. O clipper retornara o numero do erro correto.
Em todos os casos, este problema é conhecido como referência circular e só pode ser consertado alterando a estrutura do programa a fim de não se permitir este erro. Em função deste erro o programa entra em um loop do qual não consegue sair, até dar o erro.

Até logo.

Marcelo
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Tive esse erro logo q migrei do rtlink para o blinker ...
Modiquei a errorsys....comecei a usar várias coisas loucas...
Me lasquei na época para resolver....

// Linke esse obj junto com seu programa ...
http://geocities.yahoo.com.br/dudu_xbase/__wait_b.zip

// Verifique no config.sys se vc já possui isso...
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS x=CB00-CBFF
DOS=HIGH,UMB
FILES=200
BUFFERS=30


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




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

Este erro é o que chamamos de intermitente.

Este erro não faz anuncio da linha que o ocasionou dentro da lista de erros do Clipper.

Por isto não é fácil de resolver.

Eu tive este erro alguns dias atrás após compilar um programa que rodava a vários meses sem problema, meu cliente pediu uma alteração, eu fiz e compilei e o erro passou a acontecer.

Também uso o Blinker.

Este erro tem relação com variáveis colocadas em condições de critica diversas ao mesmo tempo, exemplo:

Código: Selecionar todos

PUBLIC TESTE
...
IF TESTE = "C"
    ...
ENDIF
Veja que a variavel TESTE foi PUBLICada e seu valor por default será .F., ou seja, lógico.

Em algum ponto de seu programa voce fáz uma critica nesta variável com outro valor, então acontece o erro.

É o mesmo que forçar o Clipper a devolver o resultado de:

if (1 + 1) = "X"

if "ABC" = ctod("01/12/2005")

Produre por seus IFs e CASEs e veja se as variáveis de critica estão sendo inicializadas de acordo.

@braços :?)
Responder