
Visual Studio 디버거 구성
Visual Studio 내에서 F5로 디버거를 실행하면 기본적으로 XBOX Manager나 xbConnect 같은 다른 Microsoft Game Development Kit(GDK) 도구를 사용해 설정한 기본 콘솔이 사용됩니다. 이 동작을 재정의하려면 다음 스크린샷과 같이 프로젝트 속성 페이지의 XBOX One 섹션 아래에 있는 Remote IP Address 속성을 사용해 콘솔을 지정하세요.


심볼 경로
Visual Studio로 디버깅할 때 사용할 수 있는 여러 Game OS 구성 요소의 Program Database(.pdb) 파일이 있습니다. Visual Studio가 이러한 심볼을 사용하도록 구성하면 예를 들어 디버거로 중단되었을 때 더 완전한 호출 스택을 제공합니다. 일부 Game OS 심볼은 Microsoft Game Development Kit(GDK) 설치 시 개발 PC에 설치되고, 그 외에는 Microsoft 공용 심볼 서버에서 사용할 수 있습니다. 설치 프로그램에서 설치된 Game OS 심볼은 개발 PC의 C:\Program Files (x86)\Microsoft GDK<edition number>\GXDK\gameKit\symbols 에 위치합니다. 플랫폼과 무관한 .pdb는 심볼 폴더의 루트에 있습니다. 플랫폼별 .pdb는 Xbox Series X|S 및 XboxOne 하위 디렉터리에 있습니다. 로컬 PC의 Game OS 심볼 디렉터리 경로를 추가하려면 다음 스크린샷과 같이 Visual Studio 옵션 대화 상자의 디버깅 섹션 아래에 있는 Symbols 설정을 사용하세요.

디버깅 관련 속성
디버거는 프로젝트 속성 대화 상자와 XBOX Gaming Explorer의 Settings 탭에 노출된 속성 세트를 통해 추가로 구성할 수 있습니다. 이러한 속성에는 예를 들어 타이틀에 명령줄 인수를 전달하고 로그 모듈 로딩을 켜는 기능이 포함됩니다. 사용 가능한 속성에 대한 자세한 내용은 XBOX 개발용 Visual Studio 속성 및 XBOX Gaming Explorer를 참조하세요.실행 중인 타이틀에 연결
XBOX 메뉴와 XBOX Gaming Explorer에는 콘솔에서 실행 중인 게임에 디버거를 연결하는 메뉴 옵션이 포함되어 있습니다. 기본 콘솔에서 현재 실행 중인 게임에 연결하려면 XBOX 메뉴의 Attach to Running Game을 사용하세요. XBOX 메뉴는 다음 스크린샷과 같이 Visual Studio 메뉴 표시줄에서 액세스할 수 있습니다.


Host IP 또는 System IP 주소 중 어느 것으로도 타이틀에 연결할 수 있지만, 단일 세션에서 여러 번 연결할 때는 둘을 혼합하지 마세요. 예를 들어 처음에 Host IP로 연결했다면 이후에도 계속 Host IP를 사용하세요.

Visual Studio 2022를 사용한 XBOX 프로젝트 디버깅
Visual Studio 2022로 디버깅하려면 디버깅 대상 타이틀이 2021년 10월(또는 이후) Microsoft Game Development Kit(GDK)로 빌드되어야 합니다. 이러한 버전의 Microsoft Game Development Kit(GDK)에 포함된 Game OS에는 Visual Studio 2022로 디버깅하는 데 필요한 바이너리가 포함되어 있어 2021년 10월(또는 이후) Microsoft Game Development Kit(GDK) 의존성이 있습니다. 이전 Game OS에 대해 Visual Studio 2022로 디버깅을 시도하면 다음 오류가 표시됩니다.
패키지 빌드 디버깅
XBOX One Software Development Kit 릴리스에서는 패키지 빌드 디버깅 워크플로가 Visual Studio의 Debug Installed App Packages 메뉴 항목을 사용하는 것이었습니다. 이 워크플로는 이 섹션에 설명된 대로 Microsoft Game Development Kit(GDK)의 2019년 9월 릴리스에서 크게 단순화되었습니다.

Game Lifecycle 상태 간 전환 디버깅
Game Lifecycle을 제대로 지원하려면 full, suspended, constrained 라이프사이클 상태 간 전환에 대한 이벤트 핸들러를 작성해야 합니다. Visual Studio는 타이틀이 Game Lifecycle 상태 전환을 성공적으로 통과하는 데 필요한 견고한 이벤트 핸들러를 작성하는 데 도움이 되는 여러 기능을 제공합니다. XBOX Gaming Explorer의 컨텍스트 메뉴에는 개발 키트에서 핸들러를 디버그할 수 있도록 타이틀을 Suspend, Resume, Constrain할 수 있는 옵션이 포함되어 있습니다.

Visual Studio 2022의 C++ Dynamic Debugging
C++ Dynamic Debugging은 성능을 손상시키지 않고 최적화된 코드에 대해 완전한 디버깅 경험을 제공하는 새 디버깅 기능입니다. 온디맨드 함수 최적화 해제를 통해 어디에서나 최적화 해제된 브레이크포인트를 배치하고 스텝인할 수 있습니다. C++ Dynamic Debugging을 활성화하려면 프로젝트에서 마우스 오른쪽 버튼을 클릭 후 속성 > 구성 속성 > 고급 > 고급 속성 > Use C++ Dynamic Debugging (preview)를 선택하세요. 동적 디버깅 기능을 사용하려면 Visual Studio 2022의 17.14 Preview 2 이상 버전이 필요합니다. 자세한 내용은 https://aka.ms/dynamicdebugging을 참조하세요.C++ Dynamic Debugging 사용에 필요한 Visual Studio 버전(17.14)은 2025년 4월 GDK 이후에 릴리스될 예정입니다. Visual Studio 17.14 버전이 릴리스된 후, C++ Dynamic Debugging에 필요한 C++ 디버그 모니터(msvsmon.exe)가 포함된 GDK 업데이트가 릴리스될 것입니다. 해당 GDK 업데이트가 릴리스되기 전에 C++ Dynamic Debugging을 사용하고 싶다면 Microsoft 계정 관리자에게 문의하여 콘솔에 적절한 버전의 C++ 디버그 모니터를 로드하는 방법에 대한 안내를 받으세요.
