Cade a Produtividade
Srs,
Estamos a dias procurando um erro que tem se apresentado em nossos clientes, que nao estamos conseguindo descobrir :
Erro : Range check error
O erro aparece nos lugares mais diferentes possiveis. Em consulta, em manutencao, em emissao de relatorio.
Aqueles casos comuns de estouro de matriz, pesquisa de string menor que o indice, etc... ja foram exaustivemente pesquisados.
Alguem tem alguma dica de outro tipo de situacao que pode provocar esse erro ?
Alguem tem alguma sugestao de como pesquisar esse tipo de erro ? É incrivel que em um ambiente de programacao profissional e dito produtivo nao se tem uma ferramenta para encontrar um erro em principio banal.
Utilizamos Delphi 7. O erro tem aparecido nos clientes em Win98 e XP. Temos uma rotina de tratamento de erros que quando isso acontece, como neste caso, recebemos um e-mail com algumas informacoes do ambiente.
Agradeco alguma colaboracao.
Fabio
Estamos a dias procurando um erro que tem se apresentado em nossos clientes, que nao estamos conseguindo descobrir :
Erro : Range check error
O erro aparece nos lugares mais diferentes possiveis. Em consulta, em manutencao, em emissao de relatorio.
Aqueles casos comuns de estouro de matriz, pesquisa de string menor que o indice, etc... ja foram exaustivemente pesquisados.
Alguem tem alguma dica de outro tipo de situacao que pode provocar esse erro ?
Alguem tem alguma sugestao de como pesquisar esse tipo de erro ? É incrivel que em um ambiente de programacao profissional e dito produtivo nao se tem uma ferramenta para encontrar um erro em principio banal.
Utilizamos Delphi 7. O erro tem aparecido nos clientes em Win98 e XP. Temos uma rotina de tratamento de erros que quando isso acontece, como neste caso, recebemos um e-mail com algumas informacoes do ambiente.
Agradeco alguma colaboracao.
Fabio
Fabio Ferreira
Curtidas 0
Respostas
Emerson Nascimento
18/12/2006
abra seu projeto e veja se a opção [b:e39c20a823]Projetcs -> Options -> Compiler -> Range checking[/b:e39c20a823] está marcada. se estiver, desmarque.
GOSTEI 0
Fabio Ferreira
18/12/2006
Ola Emerson,
A opcao esta marcada. Mas sempre esteve marcada porem o erro comecou a aparecer de uns dias para ca, provavelmente em funcao de alguma modificacao que fizemos.
Agora, o objetivo dessa opcao nao é justamente apresentar o erro, checkando o intervalo disponivel para nao dar um erro supostamente pior, como access violation por exemplo ?
A sua sugestao de desmarcar tem algum efeito que voce ja tenha visto antes ?
Obrigado por ter respondido.
Fabio
A opcao esta marcada. Mas sempre esteve marcada porem o erro comecou a aparecer de uns dias para ca, provavelmente em funcao de alguma modificacao que fizemos.
Agora, o objetivo dessa opcao nao é justamente apresentar o erro, checkando o intervalo disponivel para nao dar um erro supostamente pior, como access violation por exemplo ?
A sua sugestao de desmarcar tem algum efeito que voce ja tenha visto antes ?
Obrigado por ter respondido.
Fabio
GOSTEI 0
Massuda
18/12/2006
[quote:1f35e20226=´Fabio Ferreira´]Alguem tem alguma sugestao de como pesquisar esse tipo de erro ? É incrivel que em um ambiente de programacao profissional e dito produtivo nao se tem uma ferramenta para encontrar um erro em principio banal.[/quote:1f35e20226]A mensagem de erro contem o endereço onde a exceção ocorreu. Use [b:1f35e20226]Search|Find error[/b:1f35e20226] como explicado :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=80339]neste tópico[/url]. Você pode melhorar também o tratamento de exceções inesperadas no seu programa com o Madshi ou o JCL Debug.
GOSTEI 0
Fabio Ferreira
18/12/2006
Ola Massuda
Infelizmente neste caso nao tem o endereco do erro. Para o access violation, a pagina que voce indicou ajuda. As vezes.
Neste caso temos um seco : Range check error. Eu realmente nao entendo esse tipo de coisa. Nao ter um recurso na propria linguagem para achar um erro.
Qualquer outra dica sera bem-vinda.
Fabio
Infelizmente neste caso nao tem o endereco do erro. Para o access violation, a pagina que voce indicou ajuda. As vezes.
Neste caso temos um seco : Range check error. Eu realmente nao entendo esse tipo de coisa. Nao ter um recurso na propria linguagem para achar um erro.
Qualquer outra dica sera bem-vinda.
Fabio
GOSTEI 0
Massuda
18/12/2006
Desculpe, realmente não me lembrava que a mensagem do ERangeError não cita o endereço onde deu o problema (ela mostra apenas o valor que gerou o problema).
De qualquer forma, seria boa idéia usar no seu programa algum mecanismo melhorado de tratamento de exceções inesperadas. Pesquise por ´madshi´ ou ´jcl debug´ aqui no fórum.
De qualquer forma, seria boa idéia usar no seu programa algum mecanismo melhorado de tratamento de exceções inesperadas. Pesquise por ´madshi´ ou ´jcl debug´ aqui no fórum.
GOSTEI 0
Macario
18/12/2006
Olá.
O componente madexcept da [url]www.madshi.net[/url] que o colega Massuda informou ele trabalha ´em cima´ do recurso MAP File do Delphi.
Caso queira implementar ´na mão´ pesquise no google: MAP File Delphi Debugger
[]´s 8)
O componente madexcept da [url]www.madshi.net[/url] que o colega Massuda informou ele trabalha ´em cima´ do recurso MAP File do Delphi.
Caso queira implementar ´na mão´ pesquise no google: MAP File Delphi Debugger
[]´s 8)
GOSTEI 0
Fabio Ferreira
18/12/2006
Massuda / Macario
Muito obrigado pelas informacoes. Vou pesquisar esse assunto para melhorar minha rotina de tratamento de erros.
Fabio
Muito obrigado pelas informacoes. Vou pesquisar esse assunto para melhorar minha rotina de tratamento de erros.
Fabio
GOSTEI 0
Fabio Ferreira
18/12/2006
Pessoal,
Pesquisei esse assunto nos locais indicados, madshi, google, etc... e achei bastante informacao. Agora nao consegui a informacao de como fazer quando o erro nao apresenta o endereco do mesmo, como no access violation. Neste caso do ERangeError mesmo tendo toda a estrututura do MAP como vou pesquisar isso ?
Emerson : Se voce pudesse por gentileza explicar melhor o motivo da sua sugestao, quem sabe ajudaria.
Obrigado a todos,
Fabio
Pesquisei esse assunto nos locais indicados, madshi, google, etc... e achei bastante informacao. Agora nao consegui a informacao de como fazer quando o erro nao apresenta o endereco do mesmo, como no access violation. Neste caso do ERangeError mesmo tendo toda a estrututura do MAP como vou pesquisar isso ?
Emerson : Se voce pudesse por gentileza explicar melhor o motivo da sua sugestao, quem sabe ajudaria.
Obrigado a todos,
Fabio
GOSTEI 0
Massuda
18/12/2006
[quote:cd45c5fcdd=´Fabio Ferreira´]Neste caso do ERangeError mesmo tendo toda a estrututura do MAP como vou pesquisar isso ?[/quote:cd45c5fcdd]Esses ´pacotes´ geram relatórios detalhados que incluem um dump da pilha no momento que a exceção foi gerada, ou seja, a lista das funções/procedures que geraram o erro. Dependendo da configuração, o relatório já vai conter o nome das funções/procedures e linha/nome do arquivo onde o erro ocorreu.
GOSTEI 0