C++ 디버그 구성에 대한 프로젝트 설정
방법: 디버그 설정 및 릴리스 구성설명한 대로 속성 페이지 대화 상자에서 C 또는 C++ 디버그 구성에 대한 프로젝트 설정을 변경할 수 있습니다. 다음 표에서는 속성 페이지 대화 상자에서 디버거 관련 설정을 찾을 수 있는 위치를 보여 줍니다.
메모
구성 속성/디버깅 범주의 디버그 프로젝트 설정은 UWP 앱 및 C++로 작성된 구성 요소에 대해 다릅니다. 디버그 세션 시작(VB, C#, C++ 및 XAML)참조하세요.
각 디버그 속성 설정은 솔루션을 저장할 때 솔루션의 "사용자별" 파일(.vcxproj.user)에 자동으로 기록되고 저장됩니다.
다음 표에 설명된 대로 디버거에서 목록 상자를 시작하는 데 사용할 디버거를 지정합니다. 선택한 속성은 표시되는 속성에 영향을 줍니다.
구성 속성 폴더(디버깅 범주)
설정 | 설명 |
---|---|
디버거를 실행합니다 | 실행할 디버거를 다음과 같이 지정합니다. - 로컬 Windows 디버거 - 원격 Windows 디버거 - 웹 브라우저 디버거 - 웹 서비스 디버거 |
명령 (로컬 Windows 디버거) | 로컬 컴퓨터에서 디버깅하는 프로그램을 시작하기 위한 명령을 지정합니다. |
원격 명령(원격 Windows 디버거) | 원격 컴퓨터의 .exe 경로입니다. 원격 머신에 입력하는 것과 마찬가지로 경로를 입력합니다. |
명령 인수(로컬 Windows 디버거) 원격 명령어 매개변수(원격 Windows 디버거) |
- 디버깅하는 프로그램에 대한 인수를 지정합니다. 명령줄 인수를 설정하는 방법에 대한 자세한 내용은 디버기 대상에게 명령줄 인수 보내기(C++)을 참조하세요. 이 상자에서 다음 리디렉션 연산자를 사용할 수 있습니다. < file 파일에서 stdin을 읽습니다. > file stdout을 파일에 씁니다. >> file 파일에 stdout을 추가합니다. 2> file stderr를 파일에 씁니다. 2>> file 파일에 stderr를 추가합니다. 2> &1 stderr(2) 출력을 stdout(1)과 동일한 위치로 보냅니다. 1> &2 stdout(1) 출력을 stderr(2)와 동일한 위치로 보냅니다. 대부분의 경우 이러한 연산자는 콘솔 애플리케이션에만 적용됩니다. 명령에서 문자를 이스케이프해야 하는 경우 %25 같은 ASCII 값을 사용하여 %바꿀 수 있습니다. 디버깅 시작 명령을 사용하는 경우, 큰따옴표로 인해 '<' 같은 이전 명령이 이스케이프되어 <로 바뀝니다. |
작업 디렉터리 | EXE가 있는 프로젝트 디렉터리를 기준으로 디버깅 중인 프로그램의 작업 디렉터리를 지정합니다. 이 값을 비워 두면 작업 디렉터리가 프로젝트 디렉터리입니다. 원격 디버깅의 경우 프로젝트 디렉터리가 원격 서버에 있습니다. |
첨부 (로컬 Windows 디버거 및 원격 Windows 디버거) | 애플리케이션을 시작하거나 연결할지 여부를 지정합니다. 기본 설정은 '아니오'입니다. |
원격 서버 이름(원격 Windows 디버거) | 애플리케이션을 디버그할 컴퓨터의 이름(사용자 이외의)을 지정합니다. RemoteMachine Build 매크로는 이 속성의 값으로 설정됩니다. 자세한 내용은 빌드 명령 및 속성 매크로를 참조하세요. |
연결(원격 Windows 디버거) | 원격 디버깅을 위해 표준 연결 형식과 인증 없음 연결 형식 간에 전환할 수 있습니다.
원격 서버 이름 상자에 원격 컴퓨터 이름을 지정합니다. 연결 유형은 다음과 같습니다. - Windows 인증을 사용한 원격 - 인증 없는 원격 참고 인증 없이 원격 디버깅하면 원격 컴퓨터가 보안 위반에 취약해질 수 있습니다. Windows 인증 모드는 더 안전합니다. 자세한 내용은 원격 디버깅 설정참조하세요. |
HTTP URL(웹 서비스 디버거 및 웹 브라우저 디버거) | 디버깅 중인 프로젝트가 있는 URL을 지정합니다. |
디버거 형식 | 사용할 디버거 유형을 지정합니다. Native Only, Managed Only, GPU Only, Mixed, Auto(기본값) 또는 스크립트. - 네이티브 전용 관리되지 않는 C++ 코드용입니다. - 관리되는 전용 공용 언어 런타임(관리 코드)에서 실행되는 코드에 대한 것입니다. - Mixed 관리 코드와 관리되지 않는 코드 모두에 대해 디버거를 호출합니다. - 자동 컴파일러 및 EXE 정보를 기반으로 디버거 유형을 결정합니다. - 스크립트 스크립트에 대한 디버거를 호출합니다. - GPU 전용 GPU 디바이스 또는 DirectX 참조 래스터라이저에서 실행되는 C++ AMP 코드용입니다. 참조하세요: GPU 코드 디버깅. |
환경(로컬 Windows 디버거 및 원격 Windows 디버거) | 디버깅하는 프로그램의 환경 변수를 지정합니다. 표준 환경 변수 구문(예: PATH="%SystemRoot%\..." )을 사용합니다. 이러한 변수는 시스템 환경을 재정의하거나 병합 환경 설정에 따라 시스템 환경과 병합됩니다. 오른쪽 열을 클릭하면 "편집..."이 나타납니다. 해당 링크를 선택하여 속성 편집기를 열고 환경 변수를 편집합니다. 여러 환경 변수를 추가하려면 속성 편집기 사용하여 줄당 하나의 변수를 추가합니다. |
병합 환경(로컬 Windows 디버거) | 환경 상자에 지정된 변수가 운영 체제에서 정의한 환경과 병합되는지 여부를 결정합니다. 기본 설정은 예입니다. |
SQL 디버깅(MPI 클러스터 디버거를 제외한 모든 항목) | Visual C++ 애플리케이션에서 SQL 프로시저를 디버깅할 수 있습니다. 기본 설정은 '아니오'입니다. |
디버깅 가속기 유형 (GPU 디버깅에만 해당) | 디버깅에 사용할 GPU 디바이스를 지정합니다. 호환되는 GPU 디바이스용 디바이스 드라이버를 설치하면 추가 옵션이 추가됩니다. 기본 설정은 GPU - 소프트웨어 에뮬레이터. |
GPU 기본 중단점 동작(GPU 디버깅만 해당) | SIMD 왜곡의 각 스레드에 대해 중단점 이벤트를 발생시킬지 여부를 지정합니다. 기본 설정은 중단점 이벤트를 워프당 한 번만 발생하도록 설정하는 것입니다. |
Amp 기본 가속기 | GPU 코드를 디버깅할 때 기본 AMP 가속기를 지정합니다. WARP 소프트웨어 가속기 선택하여 코드 대신 하드웨어 또는 드라이버로 인해 문제가 발생하는지 조사합니다. |
배포 디렉터리(원격 Windows 디버거) | 시작하기 전에 프로젝트 출력이 복사되는 원격 컴퓨터의 경로를 지정합니다. 경로는 원격 컴퓨터의 네트워크 공유이거나 원격 컴퓨터의 폴더에 대한 경로일 수 있습니다. 기본 설정은 비어 있으므로 프로젝트 출력이 네트워크 공유에 복사되지 않습니다. 파일 배포를 사용하도록 설정하려면 Configuration Manager 대화 상자에서 배포 확인란을 선택해야 합니다. 자세한 내용은 방법:구성 만들기 및 편집을 참조하세요. |
배포할 추가 파일(원격 Windows 디버거) | Deployment Directory 속성이 설정된 경우 배포 디렉터리에 복사할 추가 폴더 또는 파일의 세미콜론으로 구분된 목록입니다. 기본 설정은 비어 있으므로 추가 폴더 또는 파일이 배포 디렉터리에 복사되지 않습니다. 배포 디렉터리의 동일한 폴더에 폴더의 내용을 복사하려면 폴더 이름을 지정합니다. 파일 배포를 사용하도록 설정하려면 Configuration Manager 대화 상자에서 배포 확인란을 선택해야 합니다. 자세한 내용은 방법:구성 만들기 및 편집을 참조하세요. |
Visual C++ 디버그 런타임 라이브러리 배포 (원격 Windows 디버거) | Deployment Directory 속성이 설정된 경우 현재 플랫폼에 대한 Visual C++ 디버그 런타임 라이브러리를 네트워크 공유에 복사할지 여부를 지정합니다. 기본 설정은 예입니다. |
C/C++ 폴더(일반 범주)
설정 | 묘사 |
---|---|
디버그 정보 형식(/Z7, /Zd, Zi, /ZI) | 프로젝트에 대해 만들 디버그 정보의 형식을 지정합니다. 기본 옵션(/ZI)은 편집 및 계속 호환 형식으로 PDB(프로그램 데이터베이스)를 만듭니다. 자세한 내용은 /Z7, /Zd, /Zi, /ZI(디버그 정보 형식)참조하세요. |
C/C++ 폴더(최적화 범주)
설정 | 묘사 |
---|---|
최적화 | 컴파일러가 생성하는 코드를 최적화해야 하는지 여부를 지정합니다. 최적화는 실행되는 코드를 변경합니다. 최적화된 코드는 더 이상 소스 코드와 일치하지 않아 디버깅이 더 어려워집니다. 기본 옵션(Disabled(/0d))은 최적화를 억제합니다. 최적화를 억제하여 개발한 다음, 코드의 프로덕션 버전을 만들 때 이를 켤 수 있습니다. |
링커 폴더(디버깅 범주)
설정 | 묘사 |
---|---|
디버그 정보 생성(/DEBUG) | /Z7, /Zd, Zi 또는 /ZI지정된 형식의 디버그 정보를 포함하도록 링커에 지시합니다. |
프로그램 데이터베이스 파일 생성(/PDB:name) | 이 상자에 PDB(프로그램 데이터베이스) 파일의 이름을 지정합니다. 디버그 정보 형식에 대해 ZI 또는 /Zi를 선택해야 합니다. |
비공개 기호 제거 (/PDBSTRIPPED:filename) | PDB 파일에 프라이빗 기호를 포함하지 않으려면 이 상자에 PDB 파일의 이름을 지정합니다. 이 옵션은 /DEBUG, /Z7, /Zd와 같은 PDB 파일을 생성하는 컴파일러 또는 링커 옵션을 사용하여 프로그램 이미지를 빌드할 때 두 번째 PDB 파일을 만듭니다. 또는 /Zi. 이 두 번째 PDB 파일은 고객에게 배송하지 않으려는 기호를 생략합니다. 자세한 내용은 /PDBSTRIPPED(개인 기호 제거)참조하세요. |
맵 파일 생성(/MAP) | 연결 중에 맵 파일을 생성하도록 링커에 지시합니다. 기본 설정은 '아니오'입니다. 자세한 내용은 /MAP(Mapfile 생성)참조하세요. |
맵 파일 이름(/MAP:이름) | 지도 파일 생성을 선택하는 경우 이 상자에서 지도 파일을 지정할 수 있습니다. 자세한 내용은 /MAP(Mapfile 생성)참조하세요. |
지도 내보내기(/MAPINFO:EXPORTS) | 맵 파일에 내보낸 함수를 포함합니다. 기본 설정은 '아니오'입니다. 자세한 내용은 /MAPINFO(Mapfile에 정보 포함)참조하세요. |
디버깅 가능한 어셈블리(/ASSEMBLYDEBUG) | 링커 /ASSEMBLYDEBUG 옵션에 대한 설정을 지정합니다. 가능한 값은 다음과 같습니다. - 디버깅 가능한 특성이 출력되지 않습니다. - 런타임 추적 및 최적화 비활성화(/ASSEMBLYDEBUG). 기본 설정입니다. - 런타임 추적을 비활성화하고 최적화를 활성화합니다(/ASSEMBLYDEBUG:DISABLE). - <는 부모 또는 프로젝트 기본값에서 상속함>. - 자세한 내용은 /ASSEMBLYDEBUG(DebuggableAttribute 추가)참조하세요. |
Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings 인터페이스를 사용하여 프로그래밍 방식으로 구성 속성 폴더(디버그 범주)에서 이러한 설정을 변경할 수 있습니다. 자세한 내용은 VCDebugSettings참조하세요.
기타 프로젝트 설정
정적 라이브러리 및 DLL과 같은 프로젝트 형식을 디버그하려면 Visual Studio 프로젝트에서 올바른 파일을 찾을 수 있어야 합니다. 소스 코드를 사용할 수 있는 경우 정적 라이브러리 및 DLL을 동일한 솔루션에 별도의 프로젝트로 추가하여 디버깅을 더 쉽게 수행할 수 있습니다. 이러한 프로젝트 형식을 만드는 방법에 대한 자세한 내용은 DLL(동적 링크 라이브러리) 만들기 및 사용 및 정적 라이브러리사용하여 만들기를 참조하세요. 소스 코드를 사용할 수 있는 경우 파일>새>기존 코드에서 프로젝트선택하여 새 Visual Studio 프로젝트를 만들 수도 있습니다.
프로젝트 외부에 있는 DLL을 디버그하려면 DLL 프로젝트 디버깅참조하세요. 고유한 DLL 프로젝트를 디버그해야 하지만 호출 애플리케이션에 대한 프로젝트에 액세스할 수 없는 경우 DLL 프로젝트디버그하는 방법을 참조하세요.
참고 항목
- 네이티브 코드 디버깅
- 디버거 설정 및 준비
- C++ 프로젝트 만들기 및 관리
- /ASSEMBLYDEBUG(DebuggableAttribute 추가)
- 빌드 명령 및 속성 대한 일반적인 매크로