Classe Construtor não executado no modo de versão
-
05-07-2019 - |
Pergunta
Exatamente o que o título diz. Estou usando MSVC ++ 2008 Express, e meu construtor da classe nunca é executado quando compilado no modo de versão. Ele faz o trabalho no modo de depuração.
Estou fazendo algo como:
ClassTest test;
test.DoIt();
Os pontos de interrupção no gatilho DoIt();
, mas pontos de interrupção em ClassTest::ClassTest();
não.
Solução
Apenas um pensamento - que poderia ser otimização do compilador no modo de versão que está impedindo o ponto de interrupção ser atingido. Isso pode acontecer se o construtor não está fazendo nada (ou seja, é um não-op). Tente adicionar algumas declarações simples para o construtor, por exemplo.
- Declare uma variável local
- Inicializar a variável
- Use lo de alguma forma (por exemplo, imprimi-lo)
Em seguida, adicione um ponto de interrupção no passo (3) acima, e ver se isso breakpoint é hit.
Você pode ver todos os tipos de problemas de depuração estranhas com a maneira como pontos de interrupção são atingidos no modo de versão, por causa das otimizações que são feitas.