在混合托管/非托管进程中转储CCW和RCW

时间:2008-09-24 14:24:18

标签: .net interop windbg com-interop mixed-mode

我有一个混合的托管/非托管环境(Visual Studio和ReSharper),我怀疑CCW或RCW泄漏。有没有办法转储所有当前分配的包装器并识别它们的源/目标?我有WinDbg,SOS& SOSEx,所以我可以使用!syncblk命令查看RCW和CCW的总数。我只是想看到对象,所以我可以打电话给他们gcroot,然后检查嫌疑人。

1 个答案:

答案 0 :(得分:2)

您应该可以使用!dumpheap来执行此操作。 !dumpheap -stat会让你找到类型名称(如果你还不知道它们),然后!dumpheap -type {typename}将为你提供可以传递给!gcroot的单个对象地址。