值未分配处理时使用发布配置在VS2010

问题描述:

我使用VS2010,我也遇到过以下问题构建:值未分配处理时使用发布配置在VS2010

HWND handle = NULL; 
handle = pPlatform->getWindowHandle(); 

当我调试代码的调试配置正确的值分配给“处理”,但是当我在发布版本中调试时,“句柄”保持为NULL。

getWindowHandle()仅仅是一个简单的访问:

HWND PlatformManager::getWindowHandle() 
{ 
    return windowHandle; 
} 

“windowHandle” 具有非NULL值都在调试/发行版本调试时。

感谢您的帮助。

发布版本包括优化,有时调试器可能会看到错误的值,以获得优化的变量。它使得发布版本更难以调试,但这正是它们不称为调试版本的原因。 :)

简而言之,如果你只需要调试一个发布版本,但是你的调试器在玩弄技巧,那么你总是可以采用旧的printf调试。添加一些跟踪功能,例如与OutputDebugString,并看看handle真的在这一点上保持NULL。

char buf [256]; HWND handle = NULL; handle = pPlatform-> getWindowHandle(); OutputDebugStringA(_itoa((int)handle,buf,10));

+0

谢谢,它真的好像调试器没有看到正确的值:) – Martin 2011-04-29 20:10:54