Página 1 de 1

BLX286 : 1313 : exception error 0D

Enviado: 17 Dez 2009 18:58
por acelconsultoria
Olá pessoal...

Há uns dias, tive essa mensagem de erro no meu cliente:

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

Já faz uns 4 dias que estou em cima desse erro, e apesar de encontrar diversas respostas no google e aqui no forum, nenhuma resolveu meu problema. O erro persistiu.

Mas, de uma forma muito bizzarra e totalmente fundamentada na "gambiarra", consegui fazer com que o programa voltasse a funcionar normalmente, ao menos é o que aparenta. Por isso resolvi postar aqui no fórum para que as pessoas mais especializadas no assunto possa comentar também.

A última venda digitada pelo cliente, foi a de número 8220. Ao adicionar a venda 8221, exatamente na linha onde tem o comando DBCOMMIT() logo após a gravação dos registros, o erro aparecia e o programa parava.

Eu verifiquei tudo que podia (seguindo instruções no google e aqui do fórum):
- Script de linkagem (arquivo LNK), pois utilizo Clipper 5.3b e Blinker7 nesse cliente;
- Refiz os índices dos DBFS relacionados (DBFCDX);
- Refiz os DBFs para verificar possíveis corrompimentos;
- Reinstalei o Clipper e as LIBs de fonte confiável;
- A única LIB que utilizo é a Visual Lib;
- Tentei mudar a sequencia de gravação nas linhas de programação;
- Alterei o programa para simplificar a lógica e tentar descobrir se o erro poderia ser na minha maneira de programar;
- Testei todas as alterações em 4 PCs diferentes, e o erro apareceu em todos.

Enfim. Aí tive a idéia maluca de, via DBU.EXE, digitar uma venda manualmente, com o número 8221. Indexei novamente e coloquei o programa pra rodar. E não é que o sistema gerou a venda 8222, 8223, 8224, 8225, 8226... normalmente ??!!! Sem erro algum !!!

Existe explicação pra isso ???

Abraços a todos... e um feliz natal !!! :)Pos

Re: BLX286 : 1313 : exception error 0D

Enviado: 17 Dez 2009 19:20
por Maligno
Pode ser que o erro esteja relacionado ao gerenciamento interno da memória. Dados quando carregados, ocupam estruturas de dados que, por conta de algum bug, ao serem manipuladas, podem estar gerando essa exceção. Isso é só uma suposição. Mas é lógico pensar que, se for isso mesmo, o erro deverá se repetir no futuro, quando essa condição X, desconhecida, se repetir.

Imagino que você já esteja considerando a possibilidade de migrar para a programação Windows 32 bits. Isso não resolve todos os problemas, claro. Mas cria problemas diferentes. :)))

Re: BLX286 : 1313 : exception error 0D

Enviado: 18 Dez 2009 10:13
por acelconsultoria
É Maligno...

Isso me leva a crer que é um bug mesmo. É uma única máquina nesse cliente. Trabalhando local, apenas controlando custos de produção e fluxo de caixa.

Esse mesmo sistema já rodou em outros clientes, em estrutura bem mais complexa e nunca apresentou esse problema. Mas esses clientes já estão trabalhando hoje com o sistema migrado pra xHarbour/BCC/GTWVW.

Nesse caso, como não tinha urgência, deixei para migrar por último... mas tô vendo que já passou da hora tbem.

Abraços.