Fórum menssagem de erro guando encerro o programa, me ajudem! #195819

18/11/2003

0

Bem gente é o seguinte tenho um sistema em delphi, que de repente ao ser finalizado passou a dar a seguinte menssagem

A Instrução no ´0x5d321a29´ fez referência a memória no ´0x5d321a29´. A memória não pode ser ´read´

Guando eu depuro a menssagem não aparece.

é só quando executo o sistema de fora.

Agradeço a colaboração de vocês. :(


Sk

Sk

Responder

Posts

18/11/2003

Aroldo Zanela

Colega,

Verifique os últimos componentes adicionados ao formulário. Já tive problema análogo e foi só remover e adicionar novamente o componente que o problema foi resolvido.


Responder

Gostei + 0

18/11/2003

Beppe

Estes erros são difíceis de solucionar, mas em que parte do código ele ocorre, então temos uma chance. Faz o seguinte:

[list:89ba1fee42]1) Coloca um breakpoint em qualquer parte do código;
2) Quando o depurador parar lá, tecle Ctrl+Shift+C;
3) Clique no item ´Goto address...´ do menu de contexto;
4) Digite $5d321a29;
5) Tente localizar o nome da função que está acima deste endereço[/list:u:89ba1fee42]


Responder

Gostei + 0

19/11/2003

Sk

Estes erros são difíceis de solucionar, mas em que parte do código ele ocorre, então temos uma chance. Faz o seguinte: [list:71ec77ef72]1) Coloca um breakpoint em qualquer parte do código; 2) Quando o depurador parar lá, tecle Ctrl+Shift+C; 3) Clique no item ´Goto address...´ do menu de contexto; 4) Digite $5d321a29; 5) Tente localizar o nome da função que está acima deste endereço[/list:u:71ec77ef72]




oi amigo, obrigada por me responder mas estou usando o delphi 6 e esse meu erro da quando saio do sistema, fiz o que você me falou, só que quando teclo Ctrl+Shift+C não aparece janela nenhuma pra digitar o endereço.


Responder

Gostei + 0

21/11/2003

Beppe

Desculpa, lhe informei errado, é Ctrl+Alt+C. Vai abrir a janela da CPU então, que exibe o código disassemblado do seu programa. Você não precisa entender o código, mas saber o nome da função pode ajudar.

Mas como disse estes problemas são difíceís de solucionar, e talvez você terá que cometer alguns atos desesperados.

Uma AV nem sempre aparece no momento que você faz alguma coisa errada, porque geralmente
Por exemplo, neste código deve aparecer uma AV logo, porque está acessando memória não inicializada:
var
  P: PChar;
begin
  StrPCopy(P, ´Hello, world!´);
end;

Como você não pode prever o conteúdo de uma local ao entrar na função, também pode ser que a AV seja retardada porque a variável pode referenciar memória com acesso a leitura/escrita, mas que foi alocada para outra variável.

Uma coisa muito comum de acontecer é liberação prematura de memória, isto é, dealocar um objeto que poderá ser usado em outro lugar do seu código.

O que você pode fazer no momento é comentar qualquer Free, FreeAndNil, FreeMem, ReallocMem(..., 0), Destroy(que não deveria ser chamado explicitamente) suspeito.

Boa Sorte!


Responder

Gostei + 0

21/11/2003

Nigro

Tenho esse erro constatemente quando uso o Trillian e o Delphi, e entre os dois adivinha qual escolhí... hehehe


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar