Saída sem razão aparente persiste

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

gab
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 26 Fev 2009 16:12
Localização: Belo Horizonte

Saída sem razão aparente persiste

Mensagem por gab »

Olá Meu nome é Graciela, sou analista e não sou programadora mais, estou com um persistente problema e gostaria de dividir de novo com vocês.
Meu sistema em Clipper 5.2, compilado em xh está saindo subitamente ao ser acionado. Isso só ocorre a partir do Windows 2000 para frente ( xp, 2003, vista), como um comportamento novo do sistema operacional em algumas máquinas.
Há algum tempo estou com esse problema até achei que tivesse encontrado a solução. O arquivo que comprime o executável durante a compilação era meu principal suspeito, mas as saídas súbitas continuam., mesmo depois de suprimir o compressor. A chamada do sistema é acionada, e antes mesmo de abrir qualquer arquivo ele pula fora. A única coisa q carrega são os defines.
Comparando com a versão compilada em Exospace a única diferença no código é que tive que suprimir as funções OL_YIELD() e OL_AUTOYIELD(.T.). No exospace não dá o problema. (estou utilizando o xh com esperança de uma possível migração de plataforma)
Então minha segunda suposição era o uso do sistema pelo processador, já que a função precisou ser retirada na compilaçào em xh, achei q poderia estar diretamente ligada. Já que nada acontece, o sistema entra e imediatamente sai, sem nenhuma mensagem de erro, nada.
Penso que não é virus, pois enviei mais de uma versão e o problema persiste.Acontece exatamente, nas mesmas máquinas. Não tenho referência de banco, uso tudo em DBF e NDX mesmo.
Vi que Maligno tem uma opinião formada sobre o uso dessas funções que devolvem o controle da CPU para o SO. Será que essas saídas não tem ligaçào com isso?

Toda ajuda é muito bem vinda!
Obrigada!!

Graciela


---
Nota da Moderação (Maligno):
O presente tópico, apesar de fazer menção ao Clipper, tem como mote uma questão relativa ao XHarbour. Assim, o tópico teve de ser movido da seção "Clipper", já que ele não se insere no contexto daquela seção.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Saída sem razão aparente persiste

Mensagem por Pablo César »

Oi Graciela,

Ja tentou utilizar o CLD (o debug do Clipper), para ver onde exatamente está abortando ?
Não tenho referência de banco, uso tudo em DBF e NDX mesmo.
NDX ? Acho que você quis dizer NTX, não é ?
Vi que Maligno tem uma opinião formada sobre o uso dessas funções que devolvem o controle da CPU para o SO. Será que essas saídas não tem ligaçào com isso?
Experimentou compilar em Clipper mesmo e com FreeTSlice() ?

Pois se você está buscando uma solução em XHarbour, teríamos que mudar seu tópico para a seção adequada. Quanto em Clipper deverá ser setada a variável CLIPPER e mencionar a quantidade de FILES no CONFIG.NT (para o caso de WINXP).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Saída sem razão aparente persiste

Mensagem por Maligno »

Você está falando de uma tentativa de migração para XHarbour e comenta que ainda no Clipper, usando o Exospace, tudo funcionava perfeitamente. Até aí tudo bem.

As funções de liberação de tempo de CPU que antes você tinha de usar, no XHarbour não são realmente necessárias e garanto que nada tem a ver com o problema que surgiu. O programa Windows 32 bits executa sob a batuta do Windows e a única forma do tempo de CPU se tornar proibitivamente comprometido é por erro de lógica. No Clipper isso acontece por conta de um bug no garbage collector, que nem funciona. Então essa sua desconfiança fica descartada. Ademais, se fosse esse o caso, o programa ainda assim executaria. Lento, claro, mas não sofreria um aborto instantâneo.

Em algum ponto do passado, esse programa funcionou corretamente sob quaisquer condições de uso, em qualquer máquina, em qualquer SO? Se sim, algo mudou. Seria aí que você teria de se apegar, voltando no tempo e revertendo as alterações feitas.

O fato de você ainda usar DBF com NDX, ou qualquer outro índice que seja, provavelmente nada tem a ver com o erro. A não ser que o programa logo de cara abra algum DBF+NDX. Nem sei se o XHarbour dá suporte à esse índice. Se dá, pode existir um bug nele. Não sei dizer com certeza. Mas o comum é que o programa primeiro desenhe uma janela principal, imprima o menu, abra uma janela de "boas vindas", etc. Mas aí é você quem pode dizer o que o programa faz logo de cara. Como o Pablo disse, uma alternativa seria usar um debugger e acompanhar o fluxo do programa. De repente, pode ser possível encontrar uma pista.

Se o problema existe em qualquer máquina, como você disse, fico desconfiado de algum problema na compilação ou linkedição. Aí realmente não posso ajudar muito. Eu programa hoje apenas no C++ Builder. XHarbour está fora da minha área. O estranho é que o problema aparece apenas quando executando em Windows com kernel NT, como você comentou. Isso é muito estranho. Sem lógica.

Em suma: responda essa mensagem então com mais informações sobre como você está montando seu EXE: versão do XHarbour, compilador utilizado, etc. Daí o pessoal que trabalha com XHarbour poderá ajudá-la muito melhor que eu.
[]'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!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Saída sem razão aparente persiste

Mensagem por sygecom »

Olá Graciela,
Você tem certeza que não é os site de bancos que não esta derrubando seu sistema, estou com varios casos assim, inclusive tenho alguns clientes com sistema em Delphi e VB passando pelo mesmo problema, mas só acontece com sistema em 32bits, com clipper não acontece mesmo !!!
Se for os site dos banco que tiver derrubando seu sistema, tente verificar se tens algum codigo nos seus .PRG relacionado ao nome de algum banco, como Banco do Brasil, Bredesco e etc...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder