Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno_Ferreira

Exceção de acesso a memoria

Recommended Posts

E aí galera beleza?

 

eis o seguinte, estou com essa mensagem de erro sempre que tento executar um robô:

 

"Access violation at address 00472D04 in module 'Robo.exe. Write of address 00000034."

 

Ele já foi compilado uma vez e roda perfeitamente, não mudei absolutamente nada no código e compilei denovo e nada.

Com receio de ser algum problema na instalação do Delphi, rodei em outra máqui também e nada, sempre o mesmo erro,

já conferi e reconferi o código todo e não há nada de errado, alguém poderia me dizer do que pode se tratar esse erro? Pressuponho que alguém já tenha passado por isso neh.

 

valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fez um debug no seu código para ver em que momento este erro acontece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cheguei a ebugar as threads mas não apontou mais nenhum detalhe sobra os erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é: em que momento ocorre um erro? Você falou que usa threads... está controlando para que elas não ocupem toda a memória disponível do pc?? Pois geralmente este erro ocorre por tentar ou acessar um objeto não instânciado/criado ou uma posição de memória inválida.

 

Por exemplo.... suponha que tenha um array com 10 elementos de espaço e tente ler o 11... vai dar erro de access violation.

 

É bom debugar bem o código para identificar em que momento ocorre o erro para então poder tentar tratar... uma dica que tirei do fórum do ActiveDelphi, deste tópico:

 

Caso queira saber onde exatamente esta o erro faz assim:
quando der o erro você entra no delphi com o programa rodando vai em search -> find error e coloca o valor do erro, no seu caso 00472D04, se caso o processo estiver rodando ele vai na linha exata do erro, caso contrário ele vai dar a mensagem de que o processo não esta rodando, ja foi destruido.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o que você me falou e achou o seguinte:

 

TExtraHost.SetEmulator:

00472D04 885034 mov [eax+$34], dl

 

só que não consegui achar a linha e não consigo ver onde está esse TExtraHost, não achei em nenhum dos arquivos do projeto.

O que eu consegui foi apenas encontrar a declaração ExtraHost lá no uses e a linha "Aplication.Run" marcada de vermelho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse TExtraHost está parecendo uma chamada a algum módulo ou dll de programa... provavelmente alguma classe compilada por terceiros.... o sistema todo foi você que escreveu ou pegou agora pra dar suporte?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei para dar suporte agora.

 

Ele lê telas de mainframe e joga esses dados em um banco de dados, talvez esse TExtraHost seja alguma coisa relacionada a isso.

Só que não achei essa classe em arquivo nenhum, nem os do projeto e nem os importados pelo projeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.