Página 1 de 1

Saída sem razão aparente persiste

Enviado: 25 Mar 2009 16:01
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.

Saída sem razão aparente persiste

Enviado: 25 Mar 2009 18:26
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).

Re: Saída sem razão aparente persiste

Enviado: 25 Mar 2009 20:47
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.

Re: Saída sem razão aparente persiste

Enviado: 26 Mar 2009 13:32
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...