在 c++/cli 中调试 gcroot

问题描述

在 Visual Studio 中调试时,如何观察由 c++/cli 中的 gcroot 引用的对象? Visual Studio 仅在调试监视中显示 gcroots 的句柄值。

解决方法

  1. 保存 gcroot 的句柄值,由调试监视显示。
  2. 添加调试监视: System.Runtime.InteropServices.GCHandle.FromIntPtr ( (IntPtr)0x0000000025eaf1d8).Target。其中 0x0000000025eaf1d8 - 来自 1 的值。
  3. 切换到任何托管框架以将调试监视切换到托管模式:转到调用堆栈窗口并双击该框架。 手表现在应该显示对象。