Xamarin Profiler 故障排除
日志记录和诊断
如果你向我们提供以下信息,Xamarin 团队可以帮助跟踪问题:
- 屏幕截图为问题、故障或失败以及导致问题的工作流。
- 日志输出(请参阅下文)。
- 为分析会话生成的 .mlpd(请参阅下文)。
获取日志输出
在 Mac 上,日志会保存到 ~/Library/Logs/Xamarin.Profiler/Profiler.<date>.log
。
在 Windows 上,这些日志会保存到 %appdata%Local//Xamarin/Log/Xamarin.Profiler/Profiler.<date>.log
。每次提交问题时,请包含最新的日志。
我们会不断添加更多日志记录,因此随着时间的推移,此输出会越来越多,也会越来越有用。
生成 .mlpd 文件
.mlpd 文件是 Mono 运行时探查器的压缩输出。 Xamarin Profiler GUI 从 .mlpd 读取数据,并将其显示给用户。 .mlpd 文件是 Xamarin 有用的调试工具,因为它们可帮助我们的工程师诊断 Profiler 可能遇到的数据问题。
当前会话的 .mlpd 会自动保存在 Mac 的 /tmp
目录中,可以通过时间戳进行标识。 如果启用日志记录,则第一个输出将是 .mlpd 文件的路径。 .mlpd 文件通常会保存在以“~/var/folders…”开头的目录中
也可以通过从 Profiler 的菜单中选择“文件”>“另存为...”来保存当前会话的 .mlpd:
Visual Studio for Mac:
Visual Studio:
需要特别注意的是,.mlpd 包含大量信息,文件大小会很大。
疑难解答
下面的列表显示了使用 Profiler 的常见陷阱、解决方法以及提示和技巧。
注意
需要订阅 Visual Studio Enterprise 才能解锁 Windows 版 Visual Studio Enterprise 或 Visual Studio for Mac 中的此功能。
我看不到 iOS 探查器选项,或者该选项显示为灰色(Visual Studio 和 Visual Studio for Mac)
检查以下设置以解决此问题:
- 确保使用调试配置
- 确保使用 SGen 垃圾回收器。
- 确保平台受支持。
- 确保拥有正确的许可证。
- 确保已登录并经过正确身份验证。
- [Visual Studio] 必须使用 Visual Studio Enterprise 并具有有效的企业许可证。
尝试启动探查器时出现错误
如果你在 Visual Studio 中使用探查器时遇到此错误框:
这通常是由于无法启动到模拟器/仿真器中。 尝试正常运行应用,修复它给出的问题,然后再次尝试使用 Profiler。
监视特定线程
如果你有一个想要专门监视的线程,最好在开始创建线程时就为其命名,以便获得 ThreadName
而不是 0x0
。 例如,若要将线程名称设置为 UI
,可以使用以下代码:
RunOnUiThread (() => {
Thread.CurrentThread.Name = "UI";
});