如何检测未初始化的内存(C ++,windows,VS2005)?

时间:2011-09-20 14:52:53

标签: c++ windows debugging memory initialization

我正在寻找适用于Windows的内存调试器,它可以调试未初始化的内存。

有一段代码片段(C ++):

class Temp{
public:
 Temp(double d) : m_double(d){};

 double m_double;
 float m_float;
};

int _tmain(int argc, _TCHAR* argv[])
{
 double temp;
 std::cout << temp <<std::endl;

 Temp temp2(2.0);
 std::cout << temp2.m_double <<std::endl;
 std::cout << temp2.m_float <<std::endl;

 int num1, num2;
 num1 = num2 + 1;

 return 0;
}

理想的功能:

  • 动态内存调试器,而不是静态分析工具
  • GUI
  • 自由
  • 与VS2005集成
  • 简单易用

试图使用:

  • Rational Purify v.7.0.0.0 build:6274
  • Memory Validator v.5.12
  • cppcheck - 在给定的片段上工作得很好,但对真正的大项目没有帮助

UPD:似乎没有办法在发布模式下找到未初始化的内存,并使用动态内存调试器打开优化。打算尝试调试模式。

2 个答案:

答案 0 :(得分:0)

过去我曾将Purify用于各种内存问题,并且运行良好。下行是它的**。

如果它是一个选项,后端的Linux端口使用valgrind,这也是一个很棒的工具。

答案 1 :(得分:0)

我认为这个问题与静态代码分析器有关。我在视觉工作室看到了这样的警告,在项目设置中有最大警告级别,但我不确定vs2005。

您还可以尝试使用此question中有关代码分析器的一些工具。