Unit não Aceita Breakpoints
Boa tarde!!
Estou com uma Unit que não esta aceitando break points somente uma todas as restantes funcionam normalmente,qualquer alteração que eu faço nesta Unit funciona.
o problema é que não aceita os break points a unica "Bolinha Azul" que aparece é no End.
Já efetuei Build, Build All, Compille, removi e add novamente no projeto e nada.
a Unit está com 4275 Linha
Delphi 7
Nunca foi feito alteração nas configurações de debug, mas relenbrando as outras units aceitam normal os BP.
Alguma possível solução?
Estou com uma Unit que não esta aceitando break points somente uma todas as restantes funcionam normalmente,qualquer alteração que eu faço nesta Unit funciona.
o problema é que não aceita os break points a unica "Bolinha Azul" que aparece é no End.
Já efetuei Build, Build All, Compille, removi e add novamente no projeto e nada.
a Unit está com 4275 Linha
Delphi 7
Nunca foi feito alteração nas configurações de debug, mas relenbrando as outras units aceitam normal os BP.
Alguma possível solução?
Timuio
Curtidas 0
Melhor post
Romulo Contro
21/11/2012
desculpa por reviver tópicos antigos, mas acho que é curiosidade de muitos isso, então resolvi responder...
é bug do delphi 7 isso, ele não consegue debugar quando tem MUITOS componentes adicionados na unit... não sei a quantidade exata de componentes, mas vi em um tópico do stackoverflow (nao lembro qual) um cara que achou a solução desse jeito...
ele foi excluindo vários componentes, e acabou que deu certo, e quando ele colocava mais componentes voltava a acontecer de não debugar.
não fiz o mesmo teste que ele, mas fazendo o teste com um componente igual em outra unit menor, funcionou normal.
espero que tenha esclarecido.
[]s
Rômulo Contro
é bug do delphi 7 isso, ele não consegue debugar quando tem MUITOS componentes adicionados na unit... não sei a quantidade exata de componentes, mas vi em um tópico do stackoverflow (nao lembro qual) um cara que achou a solução desse jeito...
ele foi excluindo vários componentes, e acabou que deu certo, e quando ele colocava mais componentes voltava a acontecer de não debugar.
não fiz o mesmo teste que ele, mas fazendo o teste com um componente igual em outra unit menor, funcionou normal.
espero que tenha esclarecido.
[]s
Rômulo Contro
GOSTEI 1
Mais Respostas
Marco Salles
31/01/2011
Solução não . Sugestão
Dê uses a esta unidade . O Compilador do delphi ele é suficientemente inteligente para perceber qnd algo que não será utilizado portanto não precisa de ser compilado
Defina uses e chame um mpetodo desta unidade
Verifique se esta Unidae faz parte do Projeto
O Delphi não esta bugado , pq ele esta compilado as demais
GOSTEI 0
Timuio
31/01/2011
A Unit que me refiro é na verdade meu DataModule todos meus datasets da parte de vendas estão dentro desta Unit e existem muitos evento que chamam ela, por exemplo
ClientDataSetVenda BeforePost... Entre outras
Toda alteração nela funciona perfeita, e caso de erros o sistema tambem gera exceções porem não consigo acompanhar nos Break points porque não esta aceitando.
Será alguma conexão que esteja faltando?
ClientDataSetVenda BeforePost... Entre outras
Toda alteração nela funciona perfeita, e caso de erros o sistema tambem gera exceções porem não consigo acompanhar nos Break points porque não esta aceitando.
Será alguma conexão que esteja faltando?
GOSTEI 0
Marco Salles
31/01/2011
Coloque o Breakpoint no dataModulo e compile a unit ou o programa .. Verifique se a linha onde esta o Breakpoint esta Verde ou azulada
auqlquer coisa post o pequeno trecho de codigo e mostre aonde vc esta marcando este Breakpoint
GOSTEI 0
Timuio
31/01/2011
GOSTEI 0
Timuio
31/01/2011
http://img227.imageshack.us/f/errold.png/
Link da Imagem com o erro
Link da Imagem com o erro
GOSTEI 0
Marco Salles
31/01/2011
Se vc observar ele esta marcada com a linha verde e todas instruçoes não estão marcadas com a bolinha azul do Delphi(tem um nome tecnico agora me foge a cabeça ) . Isto indica que o delphi não compilou esta Unidade ou especificamente este fragmento de codigo postado . De duas uma Ou não necessita dela ou o debug information no "project options" esta desmarcado . Toda Unidade esta assim ou somente esta parte do DataModulo ???
GOSTEI 0
Timuio
31/01/2011
Toda esta Unit está assim
em Project > Options a Opção Linker esta para gerar as DCU
em Compiler todos os checks de Debugging está marcado exceto Use Debug Dcu, já marquei este tbm anteriormente e n afetou,
en Source Path o caminho está correto para todas Units de meu projeto e BPL outuPut Directory tbm
e em Debbuger Options está $(DELPHI)\Lib\Debug no Debug Path
Obs: O problema com apenas esta Unit acontece se executar o projeto em outros computadores com o delphi tbm.
em Project > Options a Opção Linker esta para gerar as DCU
em Compiler todos os checks de Debugging está marcado exceto Use Debug Dcu, já marquei este tbm anteriormente e n afetou,
en Source Path o caminho está correto para todas Units de meu projeto e BPL outuPut Directory tbm
e em Debbuger Options está $(DELPHI)\Lib\Debug no Debug Path
Obs: O problema com apenas esta Unit acontece se executar o projeto em outros computadores com o delphi tbm.
GOSTEI 0
Wilson Junior
31/01/2011
Análise estes pontos:
- A sua unit DmComerc está sendo criada;
- Este evento está sendo chamado em algum momento;
- Esta unit está adicionada no projeto.
Espero ter colaborado.
- A sua unit DmComerc está sendo criada;
- Este evento está sendo chamado em algum momento;
- Esta unit está adicionada no projeto.
Espero ter colaborado.
GOSTEI 0
Emerson Nascimento
31/01/2011
Análise estes pontos:
- A sua unit DmComerc está sendo criada;
- Este evento está sendo chamado em algum momento;
- Esta unit está adicionada no projeto.
Espero ter colaborado.
- A sua unit DmComerc está sendo criada;
- Este evento está sendo chamado em algum momento;
- Esta unit está adicionada no projeto.
Espero ter colaborado.
veja o segundo item citado pelo Paulista. talvez o evento OnNewRecord do cdsVenda_Item não esteja ligado à procedure.
GOSTEI 0
Marco Salles
31/01/2011
veja o segundo item citado pelo Paulista. talvez o evento OnNewRecord do cdsVenda_Item não esteja ligado à procedure.
é o que estou batendo na tecla desde do incinio . O Compilador do Delphi é inteligente e otimiza o processo
GOSTEI 0
Timuio
31/01/2011
Obrigado por estarem tentando me ajudar a resolver este problema, mas pelo visto não estou explicando direito a situação
Não é o Evento q eu demonstrei na Imagem q ta dando erro e sim
toda e qualquer Linha desta Unit Chamanda UnDmComerc, até se eu colocar um ShowMessage Num Form1 que Usa a Unit UnDmComerc exibindo um "Hello Word" este código ira executar sem problemas
só que eu não vo conseguir usar o Breakpoint antes da mensagen ser disparada
Procedure TDmComerc.ExibirShowMessage( ExibaMensagem: Boolean );begin if ExibaMensagem then ShowMessage( "Hello Word" ) ; end;
no Begin ou no IF deveria aceitar o break point, simplimente não aceita...
estou usando a unit sim, meu projeto está divido em BPLs, com diferente niveis para não dar referencia cruzada
so estou com esse probleminha ainda sem solução.
Não é o Evento q eu demonstrei na Imagem q ta dando erro e sim
toda e qualquer Linha desta Unit Chamanda UnDmComerc, até se eu colocar um ShowMessage Num Form1 que Usa a Unit UnDmComerc exibindo um "Hello Word" este código ira executar sem problemas
só que eu não vo conseguir usar o Breakpoint antes da mensagen ser disparada
Procedure TDmComerc.ExibirShowMessage( ExibaMensagem: Boolean );begin if ExibaMensagem then ShowMessage( "Hello Word" ) ; end;
no Begin ou no IF deveria aceitar o break point, simplimente não aceita...
estou usando a unit sim, meu projeto está divido em BPLs, com diferente niveis para não dar referencia cruzada
so estou com esse probleminha ainda sem solução.
GOSTEI 0
Wilson Junior
31/01/2011
Mas manda o Leandro da uma mão aí....hehehhe
Dá uma olhada nas opções do projeto e veja se a BPL não foi retirada dos pacotes (Packages) das quais o executável precisa...
Espero ter colaborado.
Abraços.
Dá uma olhada nas opções do projeto e veja se a BPL não foi retirada dos pacotes (Packages) das quais o executável precisa...
Espero ter colaborado.
Abraços.
GOSTEI 0
Marco Salles
31/01/2011
Se vc colocar um Novo DataModule neste Projeto , este novo DataModule aceira breakPoint ou não
Procedure TDmNOVOComerc.ExibirShowMessage( ExibaMensagem: Boolean );
begin
if ExibaMensagem then
ShowMessage( "Hello Word" ) ;
end;
??????????
GOSTEI 0
Timuio
31/01/2011
Adicionei um novo DataModule e inclui na mesma Bpl, utilizei as mesmas chamadas do anterior e aceita sim o BP.
GOSTEI 0
Marco Salles
31/01/2011
então é alguma coisa no cabeçalho deste teu DataModulo , que esta incorreto .
Mais provavelmente entre o Interface e a Implementation causando esta incoerencia por parte do delphi
migre o seu codigo lentamente e tente fazer estas comparaçoes ..
GOSTEI 0
Timuio
31/01/2011
então é alguma coisa no cabeçalho deste teu DataModulo , que esta incorreto .Mais provavelmente entre o Interface e a Implementation causando esta incoerencia por parte do delphimigre o seu codigo lentamente e tente fazer estas comparaçoes ..
talves seja isso mesmo fui migrando para uma nova unit e removendo algumas partes do código o delphi estava aceitando os BP
estava com +2000 linhas so de datafields de campos do Dataset e procedures de eventos.
com remoção de parte destas procedures o delphi ja volto ao normal.
agora é so questão de organizar e migrar o excesso de CDS para um novo DataModule
Obrigado.
GOSTEI 0
Raphael Souza
31/01/2011
Esse cara achou uma solução legal Tambem...
http://br.groups.yahoo.com/group/delphi-br/message/76493
Consistem em abrir o arquivo .pas em um outro editor de texto que coloca os caracteres ocultos (cr, lf).
pode se usar o notepad++
você verá que em algumas linhas o caracter "cr" aparecerá sem o "lf".
é só apagar o caracter e pressionar o enter que fica tudo certo.
http://br.groups.yahoo.com/group/delphi-br/message/76493
Consistem em abrir o arquivo .pas em um outro editor de texto que coloca os caracteres ocultos (cr, lf).
pode se usar o notepad++
você verá que em algumas linhas o caracter "cr" aparecerá sem o "lf".
é só apagar o caracter e pressionar o enter que fica tudo certo.
GOSTEI 0