디버깅 준비: C++ 프로젝트 형식

이 단원에서는 Visual C++ 프로젝트 템플릿으로 만든 기본 프로젝트 형식을 디버깅하는 방법에 대해 설명합니다.

빌드 결과로 DLL을 생성하는 프로젝트 형식은 공통적인 특징을 갖고 있기 때문에 모두 DLL 프로젝트 디버깅으로 그룹화되었습니다.

이 항목의 내용

권장되는 속성 설정

Win32 프로젝트

일부 속성은 모든 관리되지 않는 디버깅 시나리오에서 동일한 방식으로 설정해야 합니다. 다음 표에는 권장 속성 설정이 나와 있습니다. 여기에 나와 있지 않은 설정은 관리되지 않는 프로젝트 형식에 따라 서로 다를 수 있습니다. 자세한 내용은 C++ 디버그 구성에 대한 프로젝트 설정을 참조하세요.

구성 속성 | C/C++ | 최적화 노드

속성 이름 설정
최적화 사용 안 함(/0d)으로 설정합니다. 코드를 최적화하면, 생성되는 명령이 소스 코드에 직접 대응되지 않기 때문에 디버깅하기 어렵습니다. 최적화된 코드에만 나타나는 버그가 프로그램에서 발견될 경우에는 이 설정을 선택할 수 있습니다. 그러나 디스어셈블리 창에 표시되는 코드는 소스 창에 표시되는 코드와 일치하지 않는 최적화된 코드에서 생성됩니다. 단계별 실행과 같은 다른 기능이 정상적으로 작동하지 않을 수도 있습니다.

구성 속성 | 링커 | 디버깅 노드

속성 이름 설정
디버깅 정보 생성 디버깅에 필요한 디버깅 기호와 파일을 만들려면 이 옵션을 항상 예(/DEBUG)로 설정해야 합니다. 애플리케이션을 제품화할 때는 이 옵션을 해제할 수 있습니다.

항목 내용

Win32 프로젝트

Win32 애플리케이션은 C 또는 C++로 작성된 일반 Windows 프로그램입니다. 이러한 형식의 애플리케이션은 Visual Studio에서 쉽게 디버깅할 수 있습니다.

Win32 애플리케이션에는 MFC 애플리케이션과 ATL 프로젝트가 포함됩니다. Win32 응용 프로그램은 Windows API를 사용하며 MFC나 ATL을 사용할 수도 있지만 CLR(공용 언어 런타임)는 사용하지 않습니다. 그러나 CLR을 사용하는 관리 코드를 호출할 수는 있습니다.

다음은 Visual Studio 내에서 Win32 프로젝트를 디버그하는 방법을 보여 주는 절차입니다. Visual Studio 외부에서 애플리케이션을 시작하고 여기에 연결하는 방법으로 Win32 애플리케이션을 디버깅할 수도 있습니다. 자세한 내용은 실행 중인 프로세스에 연결을 참조하세요.

C 또는 C++ Win32 애플리케이션을 디버그하려면

  1. Visual Studio에서 프로젝트를 엽니다.

  2. 디버그 메뉴에서 시작을 선택합니다.

  3. 디버거 소개에 설명된 기술을 사용하여 디버그합니다.

디버그 구성을 직접 설정하려면

  1. 보기 메뉴에서 속성 페이지를 클릭합니다.

  2. 구성 속성 노드가 아직 열려 있지 않으면 이 노드를 클릭하여 엽니다.

  3. 일반을 선택하고, 출력 행의 값을 디버그로 설정합니다.

  4. C/C++ 노드를 열고 일반을 선택합니다.

    컴파일러에서 생성할 디버깅 정보의 형식을 디버그 행에서 지정합니다. 선택한 값에는 프로그램 데이터베이스(/Zi) 또는 편집하며 계속하기를 위한 프로그램 데이터베이스(/ZI)가 포함될 수 있습니다.

  5. 최적화를 선택하고, 최적화 행의 드롭다운 목록에서 사용 안 함(/0d)을 선택합니다.

    코드를 최적화하면, 생성되는 명령이 소스 코드에 직접 대응되지 않기 때문에 디버깅하기 어렵습니다. 최적화된 코드에만 나타나는 버그가 프로그램에서 발견될 경우에는 이 설정을 선택할 수 있습니다. 그러나 디스어셈블리 창에 표시되는 코드는 소스 창에 표시되는 코드와 일치하지 않는 최적화된 코드에서 생성되므로, 단계별 실행 같은 기능을 수행하면 중단점과 실행 지점이 올바르게 표시되지 않을 수 있습니다.

  6. 링커 노드를 열고 디버깅을 선택합니다. 첫 번째 생성 행의 드롭다운 목록에서 예(/DEBUG)를 선택합니다. 디버깅하는 경우 항상 이 값으로 설정해야 합니다.

    자세한 내용은 C++ 디버그 구성에 대한 프로젝트 설정을 참조하세요.

    항목 내용