对象计数偏差2倍

问题描述 投票:1回答:1

我有一个dotMemory分析会话,我无法找到内存泄漏,所以我做了以下事情:

  1. 启动dotMemory会话
  2. 附上WinDbg并打入流程
  3. 在dotMemory中拍摄快照
  4. 让这个过程继续(qazxsw poi),以便dotMemory可以拍摄快照
  5. 拍摄快照后,再次进入该过程

就像我应该得到相同的结果,如果应用程序处于空闲状态,即什么都不做(好吧,它运行消息泵)。

查看dotMemory快照中的对象,我可以看到88000个JProperty类型的对象:

g

但是在WinDbg中,我看到了双倍的对象:

dotMemory Screenshot

谁错了 - 或者将调试器和dotMemory一起使用是一个众所周知的问题?

我在Windows 7上使用dotMemory 2018.1.4和WinDbg 10.0.15063,调试x64程序,如果有任何重要的话。

windbg dotmemory
1个回答
1
投票

看起来这是dotMemory 2018.1.4中的一个错误。由于某些原因,我没有自动获得更新。我现在已更新到版本2018.2.1并且对象计数相同。

我试图在0:021> !dumpheap -stat -type JProperty Statistics: MT Count TotalSize Class Name 000007fe7d3a3c28 83930 3357200 Newtonsoft.Json.Linq.JPropertyKeyedCollection 000007fe7d3a4ef0 177104 4250496 Newtonsoft.Json.Linq.JProperty+JPropertyList 000007fe7d3a4b80 177104 18418816 Newtonsoft.Json.Linq.JProperty Total 438138 objects 找到一个问题,但我找不到。

© www.soinside.com 2019 - 2024. All rights reserved.