Delphi: Por que “o uso de depuração DCUs” tornam-se ineficazes se eu estou usando pacotes no meu projeto?

StackOverflow https://stackoverflow.com/questions/257711

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu estou construindo um projeto que usa o JVCL plugin do sistema, que se baseia em pacotes de Delphi, e desde então eu adicionei-o ao meu projeto, depuração tornou-se um pesadelo porque eu já não sou capaz de passo-trace para o fonte de quaisquer unidades VCL ou RTL. Eles estão todos marcados como pontos cinzentos no depurador, (quando as funções relevantes aparecem em tudo na pilha de chamadas; às vezes eu obter resultados muito estranhos), e isso está me deixando louco. Alguém sabe como começar o meu depuração DCU funcionalidade de volta? (Além do óbvio:.. Arrancar todo o código plugin-relacionados que trabalho , mas seria realmente não ajuda)

Edit: Só para ficar claro, eu posso traçar qualquer outra coisa no meu projeto. código JVCL. Outras bibliotecas 3o partido. Meu próprio código. Tudo isso mostra-se muito bem no depurador. Só não o Delphi RTL e código VCL -. O material que a opção do compilador "uso de depuração DCUs" é suposto para conceder-lhe acesso a

Foi útil?

Solução

Isso está funcionando conforme projetado.

Quando você está construindo com pacotes, você está executando o código de pacote, e não usando qualquer DCU de. Portanto, os da DCU são compilados, e você não tenha acesso ao Debug DCU do.

Você pode desligar pacotes completamente, ou não compilar com os pacotes específicos que você deseja depurar. Você pode escolher quais pacotes devem ser utilizados ou não utilizados, e os que não são usados ??será "debuggable" com o Debug DCU.

Outras dicas

Os pacotes são apenas DLLs. Você tem que incluir a informação de depuração em aqueles para ser capaz de depurá-los, que é o que você quer fazer. Então você precisa ter pacotes de depuração para o VCL e RTL, não depuração DCUs. Os DCUs de depuração não estão ainda mais necessário quando você usa pacotes pré-construídos.

Poderia ser o DCU é que você estão fora da data, então o depurador não passo para o código.

Normalmente apagar todo o DCU está então fazendo uma compilação Tudo vai corrigir isso.

Você pode precisar excluir DCU de no caminho de procura também, só para ter certeza. Faça um backup primeiro, é claro ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top