2016-12-27 1 views
1

릴리스 모드에서 Visual Studio를 사용하여 네이티브 C++ 프로그램을 디버깅 할 때의 단점은 무엇입니까? 릴리스 모드에서 단순히 디버깅하는 대신 두 가지 모드를 설정하여 왜 귀찮게해야합니까? 릴리스 모드에서 디버깅으로 릴리스 모드에서 디버깅의 단점

, 나는 내가에있는 디버그 모드를해야하는 이유, 즉

(최적화 및 증분 연결을 ... 해제, 디버그 정보를 생성) 필요한 모든 구성을 설정 한 후 의미 내 프로젝트를 제 3 자의 디버그 버전에 연결하는 동안 내 릴리스 모드를 "디버그 가능한 릴리스 모드"로 변경할 수 있습니다 (내 응용 프로그램을 디버깅하는 동안 세 번째 라이브러리를 파고 드는 것을 원치 않을 경우)

답변

6

If 당신은) 디버그 정보를 생성하고 b) 최적화를 비활성화하면 거의 릴리스 모드가 아닙니다. _DEBUG를 활성화하지 않으면 디버그 모드입니다.

어떤 사람들은 순수 디버그 위에 세 번째 빌드 구성을 정의하고 때로는 릴리스 전용으로 팝업되는 디버깅 문제에 대해서만 정확하게 릴리스합니다.

아쉽게도 릴리스 전용 빌드에서 팝업되는 문제 유형은 최적화로 인해 발생하는 경향이 있으므로 이러한 종류의 빌드는 사용이 제한적입니다. 그러나 그것이 당신에게 어울리면, 당신이 그것을 사용하는 것을 방해하지 않습니다.

_DEBUG가 로그에 추가 정보를 내보내도록하고, 물론 확인을위한 어설 션을 작성해야합니다. 둘 다 정상적인 상황에서 개발에 필수적입니다. 따라서 "디버그"모드를 "디버그"가 아닌 "개발"모드라고 생각하십시오.

다른 빌드를 사용하는 목적은 항상 구성을 엉망으로 만들 필요가 없기 때문입니다. 원하는 빌드를 구성하기 만하면 잊어 버릴 수 있습니다. 디버깅을 위해 릴리스 빌드를 수정 한 경우 다음 번에 새 릴리즈를 대자연에 보내려면 이러한 수정을 취소하고 새로운 "실제"릴리스 모드 빌드를 다시 작성해야합니다. 당신은 그렇게하고 싶지 않습니다.

또한 제 3 자 라이브러리의 _DEBUG 모드는 디버깅에 유용 할 수있는 로깅을 생성 할 수 있지만 가장 중요한 것은 추가 소프트웨어 매개 변수 검사를 수행하기 때문에 강력한 소프트웨어를 개발하는 데 절대적으로 필요합니다. 따라서 _DEBUG 모드가 아닌 타사 라이브러리에서 개발하고 싶지는 않습니다.

+0

고마워. 내가 내 릴리스 모드를 "디버그 가능 버전"으로 간단히 변경할 수있는 반면 내 프로젝트를 제 3 자 디버그 버전에 연결해야하는 디버그 모드를 사용해야하는 이유는 무엇입니까? 모드 " –

+1

다른 빌드를 사용하는 목적은 항상 구성을 엉망으로 만들 필요가 없기 때문입니다. 원하는 빌드를 구성하기 만하면 잊어 버릴 수 있습니다. 대자연에 새로운 자료를 보내고 싶을 때마다 구성을 혼란에 빠뜨리지 마십시오. –

+0

또한 제 3 자 라이브러리의 _DEBUG 모드는 디버깅에 유용 할 수있는 로깅을 생성 할 수 있으며 추가 소프트웨어 매개 변수 검사를 수행 할 수도 있습니다. 따라서 강력한 소프트웨어 개발에 절대적으로 필요하므로 원하지 않을 수 있습니다 _DEBUG 모드가 아닌 타사 라이브러리에서 개발 중입니다. –

1

디버그 런타임 라이브러리가 없습니다. 이렇게하면 런타임에 잘못된 인수가 있는지 여부가 확인됩니다.이 인수는 릴리스 런타임에서 설명 할 수없는 크래시로 이어질 수 있습니다.

관련 문제