windbg定位句柄泄漏

  • 运行windbg,打开要调试的程序,并使其跑起来;此时你查看任务管理器中的句柄信息,会发现相应进程句柄一直在增加。
  • windbg用ctrl+break命令中断进程运行,用!htrace -enable命令开启句柄检测;htrace提供了进行句柄相关检测的命令,可查看windbg帮助。

  • 然后用g命令让程序运行。
  • 再次中断进程,使用!htrace -snapshot命令,获得此时进程句柄的镜像。并再次让程序运行。

  •  第三次中断进程运行,我们再使用!htrace -diff命令获得当前句柄状态与第4步 snapshot镜像句柄的差异;

  •  我们使用lsa 传递指定位置对应的代码,lsa My!CMyDlg::OnBnClickedOk+0x0000000e。到这里,我们就找到了泄露句柄的函数。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注