如何在c ++ / cx中查看哪些引用使我的ref对象不被删除?

时间:2018-01-05 03:15:59

标签: visual-studio uwp win-universal-app c++-cx

我在我的UWP项目中的一个地方使用myclass^,但我怀疑他们在超出范围时实际上并没有被删除。所以我创建了一个析构函数,为__debugbreak()调用myclass^来确保它被调用。而不是我应该为我的项目进行的40次调用,我得到了一个。根据我的理解,带帽子的类型(^)基本上是shared_ptrs,所以如果我的对象没有被删除,可能是因为项目中的其他东西都持有对它的引用。我如何诊断它并查看Visual Studio中对象的其他引用?

1 个答案:

答案 0 :(得分:2)

  

如何诊断它并查看Visual Studio中对象的其他引用?

您可以使用Visual Studio中的内存使用工具进行诊断。有关详细步骤,您可以参考Diagnosing memory issues with the new Memory Usage Tool in Visual Studio。您可以拍摄快照以捕获应用程序内存的状态。

enter image description here

当您选择类型或实例时,您可以看到它的引用,这是您将用于理解为什么在垃圾收集运行期间未收集某些类型或实例的主视图。

enter image description here