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

Saving .mlpd file in Visual Studio for Mac

Visual Studio

Saving .mlpd file in 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 中使用探查器时遇到此错误框:

Error box when using the profiler in Visual Studio

这通常是由于无法启动到模拟器/仿真器中。 尝试正常运行应用,修复它给出的问题,然后再次尝试使用 Profiler。

监视特定线程

如果你有一个想要专门监视的线程,最好在开始创建线程时就为其命名,以便获得 ThreadName 而不是 0x0。 例如,若要将线程名称设置为 UI,可以使用以下代码:

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