Estou com um probleminha no meu programa...
Instalei ele em casa para testes e tudo ocorre bem, mas no cliente volta e meia da esse erro:
Unrecoverable error 650: Processor Stack Fault
ja tentei de tudo!!!!!
sera q alguem poderia me dar uma luz a respeito doq poderia ser esse erro?
Pelo erro reportado, pode ser que resolva linkedintando seu programa com o Blinker 7. Arrisquei que você esteja usando outro linkeditor.
Poste para nós qual o linkeditor usado e o script de linkedição, para melhor ajudarmos.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Isso tem cara de um loop onde se chama repetidamente uma procedure ou function até estourar a capacidade da pilha do processador. Verifique (no trace do call stack que aparece na tela de erro) a linha onde o erro ocorre e poste o código da rotina que estava executando ou o PRG todo. Isso ajuda na análise e solução do problema.
Tudo ia "supimpa no Front" há anos... Até que um dia tive que ampliar e criar novas funcões em um aplicativo que era bem funcional (+- 600 PRGs; CA-Clipper 5.2e + RTlink + LIBs complementares), e estas modificações tornaram necessária a troca do RTlink pelo Blinker (no Rmode mesmo, porque no Pmode dava incompatibilidade com algumas LIBs vitais)... Tudo ficou ok, "bola pra frente"...
Depois de alguns meses, da rotineira "enxuga" do code e de novas compilações, eis que sem nenhuma causa aparente aparece o "famigerado" Unrecoverable error 650: Processor Stack Fault!
- Depois de um longo "pente-fino" nos PRGs à procura de alguma recursividade ou variáveis "penetras", buscando prováveis razões para o estouro de pilha, como "gritou" a mensagem... Nada!
- Mudei o Script da linkagem "tunando-o" através de modelos propostos aqui no Fórum: nada!
- Ainda sem saber o motivo, notei que em alguns PCs com o Windows XP o ERRO manifestava-se ou não, mas em PCs com versões anteriores ao XP, sempre...
Já estava perplexo com a minha limitação em não conseguir identificar a causa do problema, quando suspeitei de uma chamada que há nas primeiras linhas (a única no programa) à um pequeno EXE que muda a fonte e o modo de vídeo de 25 para 36 linhas (trabalho neste modo desde 1997, porque confere uma aparência mais suave e profissional, embora em MS-DOS), e constatei que o problema não estava no recurso, mas no modo utilizado para acioná-lo...
A solução veio pela troca da função de chamada interna __Run( ) pela SwpRunCMD( ) portada pelo Blinker.
A mim ficou a impressão que antes não havia problema porque a "dobradinha" função __Run( ) + RTlink"segurava a barra"...
A adição de novos módulos no contexto Rmode do RTlink fez este "jogar a toalha" (parece que saturou sua gestão), todavia o Blinker o fez bem, mas com reservas a função interna __Run( )...
Nas suas tentativas por exclusão de causas (caso use o Blinker), considere se há chamada à recursos externos pelo __Run( ) e tente sua substituição! Se eu já soubesse deste melindro, teria poupado um tempo valioso...
Um forte abraço!
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC] "É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com