[英]How to detect uninitialized memory (C++, windows, VS2005)?
我正在寻找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;
}
理想的功能:
尝试使用:
UPD:似乎没有办法在释放模式下找到未初始化的内存,而通过动态内存调试器打开了优化功能。 要在调试模式下尝试。
过去,我使用Purify解决各种内存问题,并且效果很好。 缺点是它是$$$$。
如果可以选择的话,后端的Linux端口使用valgrind也是一个很好的工具。
我认为此问题与静态代码分析器更相关。 我从Visual Studio中看到这样的警告,在项目设置中具有最大警告级别,但是我不确定vs2005。
您也可以尝试使用有关代码分析器的此问题中的一些工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.