我想调试并识别C ++进程中一个/某些线程中的内存泄漏。一旦内存使用率很高,我想获取该进程的线程转储。
我知道对于Java以下命令有效,'kill -3'[linux]或'sendsignal.exe'(http://www.latenighthacking.com/projects/2003/sendSignal/)
有什么方法可以在Windows上为C ++进程获取线程转储。
此线程可以关联:How to programmatically cause a core dump in C/C++
谢谢。
最小转储,而不是“线程转储”。它内置于适用于Vista和Win7的Taskmgr.exe中。在“进程”选项卡的“创建转储文件”中右键单击该进程。所有不同的方式都是listed here。
您还可以使用SysInternals中的procdump,基于性能计数器(句柄计数,内存消耗)自动生成内存转储(小型转储:http://technet.microsoft.com/en-us/sysinternals/dd996900
然后您可以在WinDbg中(或现在可以加载内存转储的VS2010中,加载并分析生成的文件)