Version: 2017.2
유니버설 Windows 플랫폼: .NET 스크립팅 백엔드의 플러그인
유니버설 Windows 플랫폼: IL2CPP 스크립팅 백엔드(Universal Windows Platform: IL2CPP scripting back end)

유니버설 Windows 플랫폼: .Net 스크립팅 백엔드에서 디버깅

크래시나 이상 동작이 발생하면 항상 <user>\AppData\Local\Packages\<productname>\TempState\UnityPlayer.log에 위치한 플레이어 로그를 확인해야 합니다. 버그 제출을 하는 경우, 중요한 정보가 될 수 있으므로 플레이어 로그를 첨부해야 합니다.

현재로서는 C# 스크립트만 디버그할 수 있습니다.

참고: 유니버설 Windows 플랫폼은 Microsoft .NET에서 실행되므로, MonoDevelop 스크립트를 디버그할 수는 없습니다. Visual Studio 2013을 사용해야 합니다.

아래는 간단하게 디버그하는 방법입니다.

  • 유니버설 Windows 플랫폼에 대해 빌드를 하는 경우, Unity C# projects를 체크해야 합니다.
  • 이러면 Universal Windows Apps와 호환가능한 Assembly-CSharp-* 프로젝트가 생성됩니다.
  • 참고: 이전에 Unity C# projects를 체크하지 않은 경우, 빈 폴더에 빌드하거나 .sln과 .csproj 파일을 삭제해야 합니다. Unity는 이들 파일에 참조를 추가해야 하지만, 이미 파일이 존재하므로 덮어쓰지 않을 것이기 때문입니다.
  • 솔루션을 열면 Assembly-CSharp-* 프로젝트가 포함된 것을 볼 수 있습니다.
  • 브레이크 지점을 원하는 곳에 위치시킨 다음 애플리케이션을 디버거와 시작해야 합니다.

예외

애플리케이션을 실행하는 동안 예외가 발생하면 Visual Studio가 중단되도록 할 수 있습니다. Debug -> Exceptions로 가야 합니다.

  • 관리 예외를 위해 공통 언어 런타임 예외와 관리 디버깅 지원을 활성화해야 합니다.
  • 예외가 어디서 발생하는지 모르는 경우 모든 예외를 활성화해야 합니다.

참고: 모든 예외를 활성화하는 경우 WinRT originate error, WinRT transform error와 같은 문제 없는 예외가 발생하더라도 Visual Studio가 중단됩니다. 이런 경우 단순히 무시하면 됩니다.

UnityPlayer.dll에서 콜스택 해결

간혹 Unity 엔진이 크래시하는 경우가 있으며, 이 경우 콜스택을 해결할 수 있으면 중요한 정보를 얻을 수 있으며 필요한 경우 이 정보를 버그 리포트에 포함할 수도 있습니다.

참고: Unity 엔진 콜스택을 해결하려면 .pdb 파일이 필요합니다. Unity는 디버그 설정을 위해 .pdb 파일을 제공합니다.

Unity 엔진이 크래시되어 브레이크 포인트에 도달했다 가정해 봅시다. (참고: Debug -> Exceptions에서 모든 예외를 활성화하면 Visual Studio를 크래시가 발생하면 중단되도록 할 수 있습니다.) Debug -> Windows -> Call Stack으로 가면 Call Stack 창이 열릴 것입니다. UnityPlayer.dll에서 함수 이름이 나타나지 않는 경우 심볼이 로드되지 않은 것입니다. 이를 해결하려면 해당 함수를 마우스 오른쪽 버튼으로 클릭한 후 Load Symbols을 클릭해야 합니다. UnityPlayer.pdb 파일이 [프로젝트 경로]>\Players\[Windows80 또는 Windows81]\[X86, ARM 또는 X64]\debug에 위치하게 됩니다.

Microsoft-Windows-TWinUI

애플리케이션이 왜 디버거없이 실행되었는지에 대한 정보를 제공할 수 있는 로그입니다. 이 로그는 아래 경로에 있습니다.

Control Panel -> Administrative Tools -> Event Viewer -> Applications And Services Log -> Microsoft -> Windows -> Apps -> Microsoft-Windows-TWinUI/Operational


• 2017–05–16 편집 리뷰 없이 페이지 수정됨

유니버설 Windows 플랫폼: .NET 스크립팅 백엔드의 플러그인
유니버설 Windows 플랫폼: IL2CPP 스크립팅 백엔드(Universal Windows Platform: IL2CPP scripting back end)