- 시스템 전체 디버그 출력 및 중요한 시스템 이벤트 수집
- 규칙 편집기를 사용하여 출력 필터링 및 사용자 지정
- 여러 출력 탭에서 출력 스트림 분리
- 사용자 지정된 규칙과 설정을 저장하고 배포
- 상세한 프로세스 모니터링 및 제어 얻기
- 트리아지, 힙 및 미니 메모리 덤프 생성 및 관리
목차
xbWatson 열기
xbWatson은 GDK 명령 프롬프트에서, XBOX Manager에서, 또는 시작 메뉴에서 xbWatson을 검색하여 열 수 있습니다. 명령줄에서 테스트 콘솔 IP나 호스트 이름을 제공하여 재정의하지 않는 한 xbWatson은 기본 콘솔에 연결됩니다. 명령줄에서 기본 콘솔을 사용하여 xbWatson 열기:구성 재정의
시작 시 xbWatson은 %localappdata%\Microsoft\Xbox One Development Kit\xbWatson\3.0에 위치한 defaultconfig.txt라는 기본 구성 파일을 로드합니다. 이 파일은 출력 탭 상태, 구성, 규칙 및 적용된 규칙을 저장합니다. 이 파일은 다른 GDK 사용자와 공유하여 사용자 지정된 설정으로 xbWatson 세션을 빠르게 열 수 있도록 할 수 있습니다. 다음을 수행하여 공유된 구성을 로드할 수 있습니다.- 로컬 defaultconfig.txt 파일에 덮어 저장
- Windows에서 sharedconfig.txt 파일을 xbWatson.exe로 끌어서 놓기
- 저장된 구성 파일을 가리키는 명령줄 스위치로 xbWatson.exe 열기(예: xbwatson.exe E:\MyConfig\sharedconfig.txt)
Loading configuration ‘C:\Users\UserName\AppData\Local\Microsoft\Xbox One Development Kit\xbWatson\3.0\defaultConfig.txt’.
기능
xbWatson에는 기본 출력 창에서 출력을 보고 구성하고, 편집기 및 메뉴를 통해 출력 규칙을 적용하고, 데이터 피드 메뉴를 통해 출력 유형을 필터링하고, Log 진단, Game OS 프로세스 목록, 스택 덤프 생성 및 관리와 관련된 고급 기능을 Dashboard에서 관리할 수 있는 기능이 있습니다.기본 출력 창
기본 출력 창은 그림 1과 같이 제목 표시줄, 출력 탭, 규칙 편집기 및 대시보드로 구성됩니다. 그림 1. xbWatson
제목 표시줄
xbWatson이 콘솔에 연결되면 그림 2와 같이 제목 표시줄이 녹색이며 연결 세부 정보가 표시됩니다. 그림 2. 제목 표시줄 (연결됨)출력 탭
시작 시 기본 출력 탭이 하나 있습니다. 마지막 탭 오른쪽의 더하기 기호(+)를 클릭하여 더 많은 출력 탭을 만들 수 있습니다. 해당 탭의 오른쪽에 있는 x를 클릭하여 출력 탭을 제거할 수 있습니다. 이름(Output)을 클릭하여 탭 이름을 변경할 수 있습니다. 콘솔에서 디버그 출력이 흐를 때 해당 탭의 활동 표시등이 깜박입니다. 텍스트를 강조 표시하거나 선택하고 표준 Windows 복사 명령을 사용하여 클립보드 버퍼에 데이터를 옮겨 출력 창에서 데이터를 복사할 수 있습니다. 각 출력 탭 내에서 다음 옵션 메뉴로 해당 탭을 구성할 수 있습니다.Add/Remove Rules 메뉴
그림 3과 같이 Add/Remove Rules 메뉴를 사용하여 현재 출력 탭에 대해 규칙을 켜거나 끌 수 있습니다. 규칙 생성에 대한 자세한 내용은 이 문서 뒷부분의 Rules Editor 섹션을 참조하세요. 그림 3. Add/Remove Rules 메뉴
Data feeds 메뉴
그림 4와 같이 Data feeds 메뉴를 사용하여 현재 출력 탭에 표시되는 출력 스트림을 구성합니다. 그림 4. Data feeds 메뉴
스트림 이름 옆의 확인란을 선택하거나 지워서 출력 스트림을 켜거나 끌 수 있습니다. 그림 5와 같이 스트림 이름 오른쪽에 있는 기어 아이콘을 클릭하여 해당 스트림 내의 개별 옵션을 구성할 수 있습니다.
그림 5. 피드 제어
사용 가능한 데이터 피드는 다음 표에 표시되어 있습니다.
Rule Editor
Rule Editor는 그림 6과 같이 기본 출력 창의 오른쪽에 있습니다. 그림 6. Rule Editor
규칙을 만들려면
- 왼쪽 창에서 New를 클릭합니다. 새 빈 규칙이 만들어집니다.
- 규칙 이름을 지정합니다.
- 새 조건을 추가합니다.
- 정규식 일치: 평가할 정규식 문자열을 입력합니다.
- 작업을 추가합니다(조건이 성공적으로 일치한 후 수행할 작업):
- Change color: 색상 선택기를 열어 일치한 텍스트의 색상을 변경합니다.
- Acquire stack dump: 선택한 스택 덤프 유형을 트리거합니다.
- Include text: 텍스트만 표시합니다.
- Exclude text: 텍스트를 표시하지 않습니다.
- Disable this rule: 이 규칙 실행을 중지합니다. 이는 자동화된 테스트 실행 중에 한 번만 스택 덤프를 가져오도록 허용하는 데 유용합니다.
- Set trigger to break: 프로세스를 일시 중단하고 디버거 연결을 준비합니다.
- Invasively attach: xbWatson을 디버거로 프로세스에 연결합니다.
- Remove invasive attach: xbWatson을 디버거에서 제거합니다.
- Flash window: 작업 표시줄의 xbWatson 아이콘을 깜박입니다.
- Show banner message: 출력 창 상단에 배너 메시지를 표시하고 주의를 끌기 위해 해당 탭의 활동 표시등을 빨간색으로 바꿉니다.
- Clear banner message: 출력 창 상단의 배너 메시지를 제거합니다.
- Enable other rule: 이 출력 탭에 대해 지정된 규칙을 활성화합니다.
- Disable other rule: 이 출력 탭에 대해 지정된 규칙을 비활성화합니다.
- 규칙을 저장합니다.
규칙 편집기에서 규칙을 적용할 때 toggle multi-select 버튼에 유의하세요. 현재 선택된 규칙만 적용됩니다.
Dashboard
기본 출력 창 하단의 위쪽 화살표를 클릭하면 그림 7과 같이 대시보드가 열립니다. 대시보드가 최소화된 상태에서는 창의 왼쪽 하단에 대시보드 상태 표시등이 있습니다. 이러한 상태 표시등은 대시보드 항목에 해당합니다. 데이터 흐름이나 상태 변화를 나타내기 위해 깜박이거나 색이 변합니다. 그림 7. DashboardLog
로그에는 xbWatson 자체와 xbWatson의 개발 키트 연결과 관련된 정보가 포함됩니다. 시작 시 로드된 구성 파일, 연결 중인 IP 주소나 저장된 연결 문자열, 그리고 xbWatson에 관한 기타 디버그 정보를 볼 수 있습니다. 개발 키트에 연결하는 데 문제가 있으면 이 대시보드 항목이 빨간색으로 바뀝니다.Game OS
개발 키트에서 타이틀이 실행되지 않을 때 이 대시보드 항목은 노란색으로 표시되며 프로세스 데이터를 사용할 수 없음을 보여줍니다. 타이틀이 실행되지 않는 상태에서는 개발 키트 설정에 대한 최소한의 데이터를 볼 수 있습니다. 타이틀이 실행 중일 때는 Windows 작업 관리자와 유사한 확장된 데이터를 볼 수 있습니다. 행의 색상은 그림 8과 같이 다음과 같은 상태를 나타냅니다.- 녹색: 지난 5초 동안 프로세스 데이터에 변화가 발생했습니다.
- 빨간색: 프로세스가 종료되었습니다.
- 주황색: 프로세스가 일시 중단되었으며, 디버그(중단) 포함.
- 파란색: xbWatson의 침입적 연결을 포함하여 디버거가 연결되었습니다.
- Terminate: 활성 프로세스를 클릭한 다음 Terminate 버튼을 클릭하면 프로세스가 종료됩니다.
- Break (debug): 프로세스를 일시 중단하고 디버거 연결을 준비합니다.
- Resume: 디버그 중단을 제거하고 프로세스를 재개합니다.
- Monitor: xbWatson을 침입적 디버거로 연결합니다. 프로세스에는 한 번에 하나의 침입적 디버거만 연결할 수 있으므로 이 방식으로 xbWatson을 연결하면 Visual Studio가 프로세스에 연결되지 않습니다. 여러 xbWatson 인스턴스가 이 연결을 공유합니다. xbWatson의 모든 인스턴스가 닫히면 자동으로 연결이 해제됩니다. 활성화되면 프로세스 디버그 데이터 피드(출력 스트림 구성 UI에서 사용 가능)가 데이터를 수신하기 시작합니다. 출력 디버그 문자열은 연결된 후 프로세스 디버그 스트림을 통해 이동합니다.
- Detach: xbWatson을 침입적 디버거에서 제거합니다.
메모리 덤프
Memory Dump 메뉴를 사용하여 메모리 덤프를 생성하거나 quiesce hang 덤프에 액세스합니다. 콘솔에서 현재 실행 중인 타이틀에 대해 힙, 미니 또는 트리아지 메모리 덤프를 만들 수 있습니다. 생성된 덤프는 콘솔에 로컬로 저장되며 Manual Memory Dumps 표 아래의 Download 버튼을 통해 다운로드할 수 있습니다. Generate 버튼은 타이틀이 실행 중이며 이러한 방식으로 메모리 덤프를 생성할 수 있는 경우에만 사용할 수 있습니다. xbWatson은 콘솔에 등록된 게임 이미지 이름과 일치하는 실행 중인 게임(프로세스 ID)을 대상으로 합니다. Memory Dump 패널은 타이틀이 실행 중일 때만 메모리 덤프 관리를 허용합니다. 생성 및 다운로드 작업 모두 대시보드 사용 중 표시등을 깜박여 활동을 나타냅니다. 일시 중단 시간 초과가 발생하고 디버거가 연결되어 있지 않으면 Quiesce hang 덤프가 자동으로 만들어집니다. 이러한 덤프는 타이틀의 일시 중단 핸들러가 필요한 시간 내에 완료되지 않은 이유를 판별하는 데 유용합니다. 대시보드 표시등이 깜박여 quiesce hang 덤프의 가용성을 나타냅니다. 사용 가능한 hang 덤프는 Quiesce Memory Dumps 표에 나열됩니다. 표 아래의 Download 버튼을 사용하여 quiesce hang 덤프를 개발 PC로 복사합니다. Game Lifecycle 지원에 필요한 일시 중단 및 재개 핸들러를 디버깅하기 위해 Microsoft Game Development Kit (GDK)에서 제공되는 기능에 대한 전체 설명은 Game Lifecycle 상태 간 전환 디버깅을 참조하세요. 그림 9. 메모리 및 Quiesce hang 덤프
