Fórum Access violation após fechar a aplicação #510489
12/02/2015
0
Após fechar a aplicação aparece o erro: "First chance exception at $004067A8. Exception class $C0000005 with message 'access violation at 0x004067a8: read of address 0x0000002e'. Process ERP.exe (2424)"
Se eu abrir a aplicação e fechar não acontece nada, mas quando eu manipulo algumas tabelas o erro aparece.
Rodando com debug ele não mostra nada, acho que porque já fechou tudo.
Delphi XE2, Firebird 2.5, DBX
Henrique Rodrigues
Curtir tópico
+ 0Posts
12/02/2015
Douglas
Será que nessa manipulação de tabelas, você não está tentando instanciar algum tipo de objeto ou destruir algum que não exista? Dê uma debugada com calma no seu código!
Gostei + 0
13/02/2015
Henrique Rodrigues
Quando dou um break ele não vai ao erro como normalmente acontece quando o erro aparece com a aplicação aberta.
no CPU aparece isso: "004067A8 FF51FC call dword ptr [ecx-$04]"
Alguém sabe interpretar essas informações do CPU?
Gostei + 0
13/02/2015
Cauê Nishijima
De mais informações do seu projeto, como esta chamando os forms, e como está destruindo os mesmo, são forms fsMDIChild ou são fsNormal?
Quais componentes de acesso a dados você esta utilizando?
A principio parece que você esta tentando manipular algum objeto após sua destruição.
Att.Cauê Nishijima
Gostei + 0
13/02/2015
Douglas
Quando dou um break ele não vai ao erro como normalmente acontece quando o erro aparece com a aplicação aberta.
no CPU aparece isso: "004067A8 FF51FC call dword ptr [ecx-$04]"
Alguém sabe interpretar essas informações do CPU?
Henrique, será que você não está tentando utilizar no seu form principal um objeto do formulário que você já utilizou?
Gostei + 0
13/02/2015
Renato Rubinho
Veja se tem algum timer que pode tentar executar algo enquanto está saindo do sistema, tentando acessar algum objeto já destruído.
Toma tempo, mas coloque um breakpoint nos eventos do seu form principal e tenta fechar debugando para verificar se não está entrando em algo que não deveria (algum onExit, por exemplo).
Tente fechar sua conexão com o banco antes de fechar o sistema, pode estar falhando a comunicação de acordo com o que está destruindo antes de finalizar.
Abraççç,
rrubinho
Gostei + 0
14/02/2015
Henrique Rodrigues
O curioso e que faço o tratamento de erro em todos os comandos para que o sistema não trave tudo, e esse erro não vem dentro de nenhum deles.
Gostei + 0
14/02/2015
Henrique Rodrigues
Assim,
TClientDataSet(DataSouce).PacketRecords := 50;
removi, parou o erro.
coloco volta o erro, parece que é isso mesmo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)