Access Violation em endereço de memória
Olá pessoal!
Estou com um problema que não está me deixando dormir.
No início o erro acontecia às vezes quando eu tentava abrir um ClientDataset (ou seja, nenhuma lógica aparente, sem mudar nada, às vezes causava o erro, às vezes não). Agora, no entanto, estou com um problema ao criar um form:
Eu faço F7(Trace into), coloco breakpoints em todas as procedures e functions deste form, mas ele não para em lugar algum. Ele me mostra o seguinte erro:
Ele sempre dá o erro nestes mesmos endereços de memória.
Quando tento debugar com Address Breakpoint, ele não para no momento do erro, mas para sempre pois é um daqueles locais onde ele passa n vezes.
Por favor, alguém já passou por isso? Como resolver?
Um abraço.
Rogério.
Estou com um problema que não está me deixando dormir.
No início o erro acontecia às vezes quando eu tentava abrir um ClientDataset (ou seja, nenhuma lógica aparente, sem mudar nada, às vezes causava o erro, às vezes não). Agora, no entanto, estou com um problema ao criar um form:
fCadCADLOGRADOURO := TfCadCADLOGRADOURO.Create(Self);
Eu faço F7(Trace into), coloco breakpoints em todas as procedures e functions deste form, mas ele não para em lugar algum. Ele me mostra o seguinte erro:
Project Teste.exe raised exception class EAccessViolation with message 'Access violation at address 00403445 in module 'Teste.exe'. Read of address 0000962C'.
Ele sempre dá o erro nestes mesmos endereços de memória.
Quando tento debugar com Address Breakpoint, ele não para no momento do erro, mas para sempre pois é um daqueles locais onde ele passa n vezes.
Por favor, alguém já passou por isso? Como resolver?
Um abraço.
Rogério.
Rogerio
Curtidas 0
Respostas
William
11/02/2014
Colega supondo que no seu projeto exista outros forms mas só esse dá problema quando é instanciado, verifique se existe algum componente que está sendo chamado no evento OnCreate desse form!!
GOSTEI 0
Rogerio
11/02/2014
Obrigado por responder.
Segue o código, lembrando que este form é herança de TfCadPai, mas o inherited não faz nada porque não há a procedure Create no fCadPai. Relembrando que estava funcionando até ontem isto.
Outra coisa, o debugador não chega a parar aí com Breakpoint, como eu disse anteriormente.
Após dar o erro eu clico em Break. O cursor para no end; que fecha a procedure TcxContainer.WndProc(var Message: TMessage); da cxContainer.pas, que é uma unit dos componentes DevExpress.
Será que é algo relacionado ao Dev?
Infelizmente não estou achando nada relativo a isso no Google.
Segue o código, lembrando que este form é herança de TfCadPai, mas o inherited não faz nada porque não há a procedure Create no fCadPai. Relembrando que estava funcionando até ontem isto.
Outra coisa, o debugador não chega a parar aí com Breakpoint, como eu disse anteriormente.
procedure TfCadCADLOGRADOURO.FormCreate(Sender: TObject); begin inherited; fMainMenu.dxBLBNovo.ButtonStyle := bsDefault; fMainMenu.dxBLBNovo.DropDownMenu := nil; end;
Após dar o erro eu clico em Break. O cursor para no end; que fecha a procedure TcxContainer.WndProc(var Message: TMessage); da cxContainer.pas, que é uma unit dos componentes DevExpress.
Será que é algo relacionado ao Dev?
Infelizmente não estou achando nada relativo a isso no Google.
GOSTEI 0
William
11/02/2014
Infelizmente o erro Access Violation é muito genérico, podem existir diversas situações para o mesmo ser disparado!
Você tem que fazer uma linha do tempo e verificar após a adição de qual componente ou bloco de código começou a surgir esse erro.
Torcer para que não seja um erro interno do componente DevExpress...
Você tem que fazer uma linha do tempo e verificar após a adição de qual componente ou bloco de código começou a surgir esse erro.
Torcer para que não seja um erro interno do componente DevExpress...
GOSTEI 0