2011-09-20 15 views
0

我正在尋找能夠調試未初始化內存的Windows內存調試器。如何檢測未初始化的內存(C++,windows,VS2005)?

有一個代碼段(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
  • si mple使用

儘量選用:

  • 的Rational Purify的v.7.0.0.0建設:6274
  • 內存校驗v.5.12
  • cppcheck - 曾給出片斷不錯,但沒」 t幫助真正的大項目

UPD:似乎沒有辦法找到未初始化的內存在發佈模式下優化打開動態內存deb ugger。試圖進入調試模式。

+2

可能的重複[是否有良好的Valgrind替代Windows?](http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows) – Flexo

回答

0

在過去,我使用Purify處理各種內存問題,並且工作得很好。下行是它的$$$$。

如果完全是一個選項,後端的Linux端口使用valgrind,這也是一個很好的工具。

+0

我用Rational Purify v.7.0.0.0 build:6274在給定的代碼片段中失敗。 – Maksim

+0

「失敗」是什麼意思? – Joe

+0

「失敗」意味着漏掉了代碼段 – Maksim

0

我覺得這個問題更關係到靜態代碼分析器。我在項目設置中看到了來自Visual Studio的警告級別最高的警告,但我不確定vs2005。

您還可以嘗試使用此代碼分析器的question中的一些工具。

+0

中的明確錯誤感謝您的評論。實際上我使用了cppcheck,它對於給定的代碼片段很好,但對真正的大項目沒有幫助,所以我更喜歡動態內存調試器,而不是靜態分析工具。 – Maksim