生成C ++进程的线程转储

时间:2011-02-25 06:07:09

标签: c++ multithreading debugging memory-management memory-leaks

我想调试并识别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++

谢谢。

2 个答案:

答案 0 :(得分:3)

Minidump,而不是“线程转储”。它内置于Vista和Win7的Taskmgr.exe中。右键单击“进程”选项卡“创建转储文件”中的进程。所有不同的方式都是listed here

答案 1 :(得分:1)

您还可以使用来自SysInternals的procdump自动生成基于性能计数器(句柄计数,内存消耗)的内存转储(小型转储):http://technet.microsoft.com/en-us/sysinternals/dd996900

然后,您可以在WinDbg中加载和分析生成的文件(或者在VS2010中,现在也可以加载内存转储)