Poolmon配合Findstr查找内存泄漏源

Poolmon配合Findstr查找内存泄漏源 

安装poolmon:

系统盘中的SUPPORT/TOOLS/SUPTOOLS.MSI

命令行切换到

>cd c:\program files\support tools

>poolmon

 

 

1、运行Poolmon /g tagfile, [Poolmon 和tagfile在resource Kit中可以找到]
2、如果Poolmon结果中的tag在tagfile中已经有对应的说明,则可以直接 确认源头。
3、如果Poolmon结果中的tag在tagfile中对应的说明是Unknown, 则需要利用Findstr来进一步查找源头。
4、 比如结果中出现
Tag  Type     Allocs            Frees            Diff   Bytes       Per Alloc
ARSl Nonp     688421 (  37)         0 (   0)   688421 16522104 (   888)     24
经过一天的观察,Diff的值始终在增加。确认这个tag有问题,然后
Run C:\>findstr /s /m /l "ARSl" c:\*.sys
FINDSTR: Cannot open c:\pagefile.sys
c:\WINDOWS\system32\drivers\RSAFAL.sys.

Google rsafal.sys发现这个文件是Altris的一个模块。

 

命令列表:

P 排序标记列表中的通过分页,无-分页或混合。请注意 P 循环通过每个。
B 进行排序按最大字节使用情况的标记。
M 按最大字节分配对标签进行排序。
T 按标记名称按字母顺序排序标记。
E 显示分页,跨底部未分页的总计。循环。
A 按分配大小对标签进行排序。
F 按"释放"对标记进行排序。
S 按 allocs 的差异对标签进行排序,并释放。
E 显示分页,跨底部未分页的总计。循环。
Q 退出。

列说明:

Tag:池分配的4字节Tag

Type:分页或未分页

Allocs:所有分配的计数

():分配列中与上次更新的差异

Frees:所有空闲的计数

():空闲列中与上次更新的差异

Diff:(Allocs - Frees

Bytes:池消耗的合计字节数

():字节列中与上次更新的差异

Per Alloc:(Bytes/Diff

你可能感兴趣的:(职场,内存泄漏,休闲,poolmon)