Jump to content

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Luiz Paulo

ANSWERED Stack Overflow ao dar "Build All" em Delphi 7

Recommended Posts

Boa tarde pessoal,

Estou com problemas de compilação com o Delphi 7!

Quando dou um "build all" ou muitas vezes apenas ao compilar, vários erros ocorrem principalmente os seguintes:

  • "Stack overflow - save yout work and restart Delphi" 
  • Ou as vezes simplesmente o Delphi fecha.

Não consegui identificar um padrão, mas isso começou depois de duas alterações grandes serem liberadas. Sozinhas elas funcionavam, mas juntas o problema acontece. Cada uma dessas alterações gerou mais de 1000 units. E no momento o projeto está com mais de 3 milhões de linhas.

Daí dá vontade de "chorar" ao compilar ou dar um build. Até consegue depois de várias tentativas e tal. Mas isso afeta bastante a produtividade.

  • Alguém já se deparou com algum problema assim?
  • Será que o delphi tem uma limitação de units ou algo assim?
  • Poderia ser referência circular?
  • Alguém tem alguma sugestão?

Obs: sobre a questão de migrar o delphi estou realizando testes quanto a isso. Mas, isso não será possível no momento.


Saudações,
Luiz Paulo Ferrari

Share this post


Link to post
Share on other sites

Olá Luiz,

   esse tipo de erro é muito chato mesmo. Antes de responder, deixa eu fazer algumas perguntas:

  • A mensagem aparece apontando pra alguma bpl ou dll específica?
  • Você tem instalado as atualizações do Delphi 7 (se não me engano a última é 7.1 mesmo)
  • As mudanças mencionadas foram em seus próprios componentes?

 

2 horas atrás, Luiz Paulo disse:
  • Alguém já se deparou com algum problema assim?
  • Será que o delphi tem uma limitação de units ou algo assim?

Já, mas no Delphi 7 faz muito tempo pra lembrar... não me lembro de limitação.

2 horas atrás, Luiz Paulo disse:

Poderia ser referência circular?

Sim. Stackoverflow geralmente é praticamente quando uma função fica repetindo várias vezes, então pode ser, talvez não detectada pelo compilador.

2 horas atrás, Luiz Paulo disse:

Alguém tem alguma sugestão?

Tente usar o Delphi speed UP do Andy

 


[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

Olá Elton,

Obrigado pela resposta.

Em 14/11/2018 at 18:56, EMBarbosa disse:

A mensagem aparece apontando pra alguma bpl ou dll específica?

Acaba não sendo especifico. Primeiro aponta para um lugar as vezes repete e depois aparece em outro.

Em 14/11/2018 at 18:56, EMBarbosa disse:

Você tem instalado as atualizações do Delphi 7 (se não me engano a última é 7.1 mesmo)

Acredito que seja a 7.0 mesmo por que no about aparece version 7.0 Build 4.453.

Em 14/11/2018 at 18:56, EMBarbosa disse:

As mudanças mencionadas foram em seus próprios componentes?

Sim foram. Não houve alterações no fontes ACBr ou em outros fontes de terceiros.

Em 14/11/2018 at 18:56, EMBarbosa disse:

Já o utilizamos.


Saudações,
Luiz Paulo Ferrari

Share this post


Link to post
Share on other sites
Em 16/11/2018 at 09:19, Luiz Paulo disse:

Acredito que seja a 7.0 mesmo por que no about aparece version 7.0 Build 4.453. 

Talvez possa tentar atualizar. Na versão 7.1 aparece "Version 7.0 (Build 8.1)". Mas não sei se isso vai corrigir o problema.

Na minha cabeça veio as seguintes ideias:

Eu fiz algumas pesquisas e outras sugestões que encontrei, (relacionadas não com o stackoverflow mas com AV),  foram:

  • Se tiver vários projetos em um grupo, fazer um build em apenas um projeto por vez. Não sei se isso se aplica no seu caso;
  • Remover todos arquivos .dsk dos projetos utilizados, e todos os arquivos .dst da pasta "C:\Program Files\Borland\Delphi7\Bin" (link https://stackoverflow.com/a/5503980/460775);
  • Like 3

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

Boa tarde Elton,

Em 17/11/2018 at 16:22, EMBarbosa disse:

Usar um PE Editor para aumentar o tamanho da Stack dos executáveis do Delphi. A princípio pensei que isso era hardcore demais... Mas tem gente que já fez e deu certo, veja https://stackoverflow.com/a/7559034/460775

Também havíamos feito anteriormente o acima, mas não senti diferenças significativas.

Em 17/11/2018 at 16:22, EMBarbosa disse:

Na minha cabeça veio as seguintes ideias:

  • Usar limpadores de units para remover units não usadas nos projetos. Por exemplo, usando o CnPack Wizard "Uses Unit Cleaner"

Mas, sexta-feira acabamos tendo essa mesma ideia e conseguimos. ?

Como foram mais de 2000 units alteradas não sabemos qual(is) unit(s) estava com problemas, fica difícil analisar. Mas o importante é que deu certo.

Um build completo agora esta demorando uns 4 minutos.

Muito obrigado pelas dicas acima.


Saudações,
Luiz Paulo Ferrari

Share this post


Link to post
Share on other sites
7 minutos atrás, Luiz Paulo disse:

Mas, sexta-feira acabamos tendo essa mesma ideia e conseguimos?

Como foram mais de 2000 units alteradas não sabemos qual(is) unit(s) estava com problemas, fica difícil analisar. Mas o importante é que deu certo. 

Um build completo agora esta demorando uns 4 minutos. 

Que joia. Fico feliz que deu certo. Obrigado pelo retorno.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...