menssagem de erro guando encerro o programa, me ajudem!
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. :(
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
Curtidas 0
Respostas
Aroldo Zanela
18/11/2003
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.
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.
GOSTEI 0
Beppe
18/11/2003
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]
[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]
GOSTEI 0
Sk
18/11/2003
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.
GOSTEI 0
Beppe
18/11/2003
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:
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!
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!
GOSTEI 0
Nigro
18/11/2003
Tenho esse erro constatemente quando uso o Trillian e o Delphi, e entre os dois adivinha qual escolhí... hehehe
GOSTEI 0