值未分配处理时使用发布配置在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));
谢谢,它真的好像调试器没有看到正确的值:) – Martin 2011-04-29 20:10:54