如果只是怀疑文件句柄泄漏,可以通过Process Explorer 找到对应进程,双击点开查看performance中的handles变化即可,然后结合I/O项变化进行大致分析。
——当然对于程序员而言,不光是要发现问题,还要定位问题。
针对linux,也有trace命令可以使用,不展开讲述。
针对windows,这个时候就要借助windbg工具,通过attach或打开exe(记得设置工作目录),可以执行g命令跑一会程序,然后break中断, 通过!handle命令查看句柄是否会增加(这也是一种类似Process Explorer排查句柄泄漏的方法);
要定位问题,首先就需要enable htrace( 命令: !htrace -enable),然后继续执行程序一段时间,break后执行!htrace命令即可查看当前栈的信息:
查看是否只有handle OPEN 而没有相应的CLOSE。如果是 , 那么恭喜你,你找到问题了,接着就查看栈信息定位你代码中的问题吧。 哈哈哈,就是如此简单,但是对于没有排查手段的人来说,可能就得抓耳挠腮了
记得修复问题后,通过同样的方法check问题的修复情况哦, see you !