调试 -> Windows -> Unity 项目的内存?

Debug -> Windows -> Memory for a Unity project?

我需要在调试时检查 Unity 项目的内存内容。

无论我怎么尝试,比如使用托管兼容模式,内存window拼命显示:

Unable to evaluate the expression.

问题:

是否可以使用内存 window 为 Unity 项目检查内存?

Debug -> Windows -> Memory for a Unity project?

实际上,在unity项目中,memory window不能自动捕获托管代码,你应该使用Watch Window获取变量的地址,然后在内存中输入地址Window获取。

建议

首先,请从this document启用这些选项。

1)在Unity工程的变量上设置一个断点,当遇到断点时,可以打开Watch Window,然后用&得到变量的地址,像这样:

2)然后复制Memory中的地址Window可以看到关于它的内存内容:

除了,你也可以尝试使用Unity Profiler,就像Lotan推荐的那样观看内存内容

这里有一个技巧让我看到了托管代码中使用的非托管内存:

  • 附加一个 VS 作为 Unity Debugger,暂停,从 Watch 获取变量地址 window;
  • 附加另一个 VS 作为本机调试器,暂停,将地址放入 内存 window.

要在 Unity 调试器模式下与 VS 交互,只需在本机调试器中点击“继续”即可。