如何将WinDbg与.NET内存转储文件一起使用,以查看每个DbConnectionPool对象中有多少个池连接?

时间:2014-11-10 22:46:16

标签: .net windbg

我有一个包含.NET DbConnectionPool对象的内存转储。我不想冗长地遍历每个连接池对象并转储其_totalObjects字段,而是想快速确定每个连接池包含多少个池连接。

1 个答案:

答案 0 :(得分:3)

使用WinDbg脚本和Microsoft PSSCOR2调试扩展,您可以:

  1. 从Microsoft下载PSSCOR2调试扩展程序
  2. 在WinDbg中打开内存转储
  3. 在WinDbg中加载psscor2.dll(x86或x64版本,具体取决于您正在处理的转储的位数)
  4. 将以下scriptlet粘贴到WinDbg中并执行:
  5. .foreach (pool {!dumpheap -type System.Data.ProviderBase.DbConnectionPool -short}) {.printf "Pooled connection count: "; !df -field _totalObjects pool}