C++ windbg源代码调试,在“局部变量”窗口中看不到局部变量

C++ windbg源代码调试,在“局部变量”窗口中看不到局部变量,c++,debugging,local,windbg,C++,Debugging,Local,Windbg,我正在使用windbg进行远程调试,一切正常,我可以使用f10或f11进行单步调试。我的调试环境是Wi7,语言是C++。 有一个问题,我在函数中看不到局部变量,如下图所示 为什么会出现这种情况?在我看来,如果我能看到进程的所有寄存器,我必须能看到bRet的局部变量 有人能帮我吗?非常感谢 这是密码 bool CNBAGFxFont::Init() { bool bret = true; m_pFontlib = *new GFxFontLib(); if (m_pF

我正在使用windbg进行远程调试,一切正常,我可以使用f10或f11进行单步调试。我的调试环境是Wi7,语言是C++。 有一个问题,我在函数中看不到局部变量,如下图所示

为什么会出现这种情况?在我看来,如果我能看到进程的所有寄存器,我必须能看到bRet的局部变量

有人能帮我吗?非常感谢

这是密码

bool CNBAGFxFont::Init() 
{ 
    bool bret = true;
    m_pFontlib = *new GFxFontLib(); 
    if (m_pFontlib) 
    { 
        bret = m_pFontlib->Init(); 
    }
    if (!bret) 
    {
          m_pFontlib = NULL;
          m_pGFxLoader->SetFontProvider(NULL); 
          return bret; 
    } 
    //m_pFontMC = *m_pGFxLoader->CreateMovie("gfxfontlib.swf");
    //m_pFontlib->AddFontsFrom(m_pFontMC, true)
  }

该程序是经过优化编译的

根据OP的评论:

如果我禁用了优化,WinDbg可以工作,我可以在窗口中看到局部变量


bool CNBAGFxFont::Init(){bool-bret=true;m_-pFontlib=*new gfxontlib();if(m_-pFontlib){bret=m_-pFontlib->Init()}if(!bret){m_-pFontlib=NULL;m_-pGFxLoader->SetFontProvider(NULL);返回bret;//m_-pFontMC=*m_-pGFxLoader->CreateMovie;这是代码,我不知道如何格式化。在调试时,我看不到bRet的值。在类中,“局部变量”窗口只能显示您正在使用任何优化构建的私有成员?如果是这样,编译器可能没有实际分配任何
bRet
变量。此外,当
bRet时,您没有返回任何内容==true
。感谢您提供的屏幕截图-它很有帮助。您在正确的窗口中(视图>局部变量),您应该看到“bret”(这是一个局部变量)。建议:1)重建、重新下载并重新测试(以确保调试器.exe映像与实际执行的映像在sych中),2)查看文档:。请发回您发现的内容。另外:“优化”可能不好。请看这里:@MichaelBurr,oops,就是这个问题,如果我禁用了优化,windbg就会工作,并且可以在窗口中看到局部变量。如果打开优化,编译器会做多少事情?soem能向我解释一下吗?