Xamarin Profiler 문제 해결Xamarin Profiler Troubleshooting

로깅 및 진단Logging and Diagnostics

Xamarin 팀은 다음을 비롯 한 정보를 제공 하는 경우 문제를 추적 하는 데 도움이 될 수 있습니다.The Xamarin team can help track issues if you provide us with information, including:

  • 문제, 충돌 또는 실패의 동영상 가이드 워크플로를 시작 합니다.A Screencast of the problem, crash, or failure and your workflow leading up to it.
  • 로그 출력 (아래 참조)Log outputs (see below).
  • 프로 파일링 세션에 대해 생성 되는 mlpd입니다 (아래 참조).The .mlpd being generated for the profiling session (see below).

로그 출력 가져오기Getting Log Outputs

Mac의 로그는 ~/Library/Logs/Xamarin.Profiler/Profiler.<date>.log에 저장 됩니다.On Mac logs are saved to ~/Library/Logs/Xamarin.Profiler/Profiler.<date>.log.

Windows에서는 문제를 제출할 때마다 최신 로그를 포함 하는 %appdata%Local//Xamarin/Log/Xamarin.Profiler/Profiler.<date>.log에 저장 됩니다.On Windows these are saved to %appdata%Local//Xamarin/Log/Xamarin.Profiler/Profiler.<date>.log Please include the latest log whenever you submit an issue.

진행 되는 동안 더 많은 로깅을 추가 하 고 있으므로이 출력이 증가 하 고 시간이 지남에 따라 더 유용 하 게 제공 됩니다.We’re adding more logging as we go, so this output should grow and become more useful over time.

Mlpd 파일 생성Generating .mlpd Files

Mlpd 파일은 mono 런타임 프로파일러의 압축 된 출력입니다.An .mlpd file is the compressed output of the mono runtime profiler. Xamarin Profiler GUI는 mlpd 에서 데이터를 읽고 사용자에 게 표시 합니다.The Xamarin Profiler GUI reads the data from an .mlpd and displays it for the user. mlpd 파일은 엔지니어가 프로파일러에서 데이터를 사용 하는 문제를 진단 하는 데 도움이 되기 때문에 Xamarin 용 디버깅 도구를 사용 하는 것이 좋습니다..mlpd files are useful debugging tools for Xamarin because they help our engineers diagnose problems the Profiler might be having with your data.

현재 세션에 대 한 mlpd 는 Mac의 /tmp 디렉터리에 자동으로 저장 되며 타임 스탬프로 식별할 수 있습니다.The .mlpd for the current session is automatically saved in your Mac’s /tmp directory, and can be identified by the timestamp. 로깅을 설정 하면 첫 번째 출력은 mlpd 파일의 경로가 됩니다.If you turn on logging, the first output will be the path to the .mlpd file. 일반적으로 mlpd 파일은 디렉터리에 저장 됩니다. ~/var/folders...The .mlpd file will normally be saved in the directory starting ~/var/folders…

파일 > 다른 이름으로 저장 ...을 선택 하 여 현재 세션에 대 한 mlpd 를 저장할 수도 있습니다.The .mlpd for a current session can also be saved by choosing File > Save As… Profiler의 메뉴에서 다음을 수행 합니다.from the Profiler’s menu:

Mac용 Visual Studio:Visual Studio for Mac:

Visual Studio:Visual Studio:

Mlpd 는 많은 정보를 포함 하며 파일 크기는 커집니다.It is important to note that .mlpd contain a lot of information, and the file size will be large.

문제 해결Troubleshooting

아래 목록은 일반적인 알려진 문제, 해결 방법 및 프로파일러 사용에 대 한 팁과 요령을 보여 줍니다.The list below shows common gotchas, workarounds, and tips and tricks for using the Profiler.

참고

Windows 또는 Mac용 Visual Studio에서 Visual Studio Enterprise이 기능의 잠금을 해제 하려면 Visual Studio Enterprise 구독자 여야 합니다.You need to be a Visual Studio Enterprise subscriber to unlock this feature in either Visual Studio Enterprise on Windows or Visual Studio for Mac.

IOS profiler 옵션이 표시 되지 않거나 회색으로 표시 된 경우 [Visual Studio 및 Mac용 Visual Studio]I can't see the iOS profiler option, or it is greyed out [Visual Studio and Visual Studio for Mac]

이 문제를 해결 하려면 다음 설정을 확인 합니다.Check the following settings to resolve this:

  • 디버그 구성을 사용 중인지 확인 합니다.Ensure that you are using the Debug configuration
  • SGen 가비지 수집기를 사용 하 고 있는지 확인 합니다.Ensure that you are using the SGen Garbage collector.
  • 플랫폼이 지원되는지 확인 합니다.Ensure the Platform is supported.
  • 올바른 라이선스가 있는지 확인 합니다.Ensure that you have the right license.
  • 로그인 되어 있고 제대로 인증 되었는지 확인 합니다.Ensure that you are logged in and properly authenticated.
  • [Visual Studio] Visual Studio Enterprise 를 사용 하 고 있고 유효한 엔터프라이즈 라이선스가 있어야 합니다.[Visual Studio] You must be using Visual Studio Enterprise and have a valid Enterprise license.

프로파일러를 시작 하려고 할 때 오류가 발생 합니다.I get an error when I try to launch the profiler

Visual Studio에서 프로파일러를 사용 하는 경우이 오류 상자가 표시 되 면 다음을 수행 합니다.If you run into this error box when using the profiler in Visual Studio :

일반적으로 시뮬레이터/에뮬레이터를 시작할 수 없기 때문입니다.It is normally due to being unable to launch to the Simulator / Emulator. 앱을 정상적으로 실행 하 고, 제공 하는 문제를 해결 한 후 프로파일러를 다시 사용 해 보세요.Try and run the app normally, fix the issues that it gives, and then try to use the Profiler again.

특정 스레드를 시청 하려면To watch a specific thread

특별히 감시 하고자 하는 스레드가 있는 경우 생성이 시작 될 때 스레드 이름을 0x0대신 ThreadName 가져오도록 하는 것이 좋습니다.If you have a thread that you wanted to specifically watch, it would be ideal to name the thread at the very beginning of its creation to get ThreadName instead of 0x0. 예를 들어 UI스레드 이름을 설정 하려면 다음 코드를 사용할 수 있습니다.For example to set the thread name as UI, you could use the following code:

RunOnUiThread (() => {
  Thread.CurrentThread.Name  = "UI";
});