클래스 생성자는 릴리스 모드에서 실행되지 않았습니다
-
05-07-2019 - |
문제
제목이 말하는 것. MSVC ++ 2008 Express를 사용하고 있으며 릴리스 모드에서 컴파일 된 경우 클래스 생성자가 실행되지 않습니다. 디버그 모드에서 작동합니다.
나는 다음과 같은 일을하고 있습니다.
ClassTest test;
test.DoIt();
중단 점 DoIt();
트리거이지만 브레이크 포인트가 켜집니다 ClassTest::ClassTest();
하지 마라.
해결책
단지 생각 - 릴리스 모드에서 컴파일러 최적화가 될 수 있습니다. 생성자가 아무것도하지 않으면 발생할 수 있습니다 (예 : NO-OP). 생성자에 몇 가지 간단한 진술을 추가 해보세요.
- 로컬 변수를 선언합니다
- 변수를 초기화합니다
- 어떤 식 으로든 사용하십시오 (예 : 인쇄)
그런 다음 위의 (3)에 중단 점을 추가하고 해당 중단 점이 누락되었는지 확인하십시오.
최적화로 인해 브레이크 포인트가 릴리스 모드에서 발생하는 방식으로 모든 종류의 이상한 디버깅 문제를 볼 수 있습니다.
제휴하지 않습니다 StackOverflow