방법: 릴리스 빌드 디버깅
이 문서에서는 애플리케이션의 릴리스 빌드를 디버그할 수 있도록 설정할 컴파일러 및 링커 스위치에 대해 설명합니다.
최적화된 코드의 속도를 유지하면서 최적화된 코드를 최적화되지 않은 것처럼 디버그할 수 있는 Visual Studio 2022 버전 17.14부터 더 나은 환경을 사용할 수 있습니다. 자세한 내용은 C++ 동적 디버깅(미리 보기)참조하세요.
릴리스 빌드를 디버그하려면
프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
C/C++ 노드를 클릭합니다. 디버그 정보 형식을 C7 호환(/Z7) 또는 프로그램 데이터베이스(/Zi)로 설정합니다.
링커를 확장하 고 일반 노드를 클릭합니다. 증분 링크 사용을 아니요(/INCREMENTAL:NO)로 설정합니다.
링커아래에서 디버깅 노드를 선택합니다. 디버그 정보 생성을 예(/DEBUG)로 설정합니다.
링커아래에서 최적화 노드를 선택합니다. 참조아니요(/OPT:NOREF) 설정하고 COMDAT 접기 아니요(/OPT:NOICF)사용하도록 설정합니다.
이제 릴리스 빌드 애플리케이션을 디버그할 수 있습니다. 문제를 찾으려면 코드를 단계별로 실행하거나 Just-In-Time 디버깅을 사용하여 오류가 발생한 위치를 찾은 다음 잘못된 매개 변수 또는 코드를 확인합니다.
애플리케이션이 디버그 빌드에서 작동하지만 릴리스 빌드에서는 실패하는 경우 컴파일러 최적화 중 하나에서 소스 코드의 결함을 노출할 수 있습니다. 문제를 격리하려면 문제를 일으키는 파일 및 최적화를 찾을 때까지 각 소스 코드 파일에 대해 선택한 최적화를 사용하지 않도록 설정합니다. (프로세스를 신속하게 진행하려면 파일을 두 그룹으로 나누어 한 그룹에서 최적화를 사용하지 않도록 설정하고 그룹에서 문제를 찾으면 문제 파일을 격리할 때까지 계속 분할할 수 있습니다.)
/RTC을 사용하여 디버그 빌드에서 이러한 버그를 노출할 수 있도록 시도합니다.
자세한 내용은 Optimizing Your Code(코드 최적화)를 참조하세요.