Unit não Aceita Breakpoints

Delphi

31/01/2011

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?
Timuio

Timuio

Curtidas 0

Melhor post

Romulo Contro

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
GOSTEI 1

Mais Respostas

Marco Salles

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

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? 
GOSTEI 0
Marco Salles

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

Timuio

31/01/2011


 
GOSTEI 0
Timuio

Timuio

31/01/2011

http://img227.imageshack.us/f/errold.png/
 

Link da Imagem com o erro
GOSTEI 0
Marco Salles

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

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. 
GOSTEI 0
Wilson Junior

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.
GOSTEI 0
Emerson Nascimento

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.


veja o segundo item citado pelo Paulista. talvez o evento OnNewRecord do cdsVenda_Item não esteja ligado à procedure.

GOSTEI 0
Marco Salles

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

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.
GOSTEI 0
Wilson Junior

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.

GOSTEI 0
Marco Salles

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

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

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

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

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.
GOSTEI 0
POSTAR