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