我有以下内容:
classA::FuncA()
{
... code
FuncB();
... code
}
classA::FuncB(const char *pText)
{
SelectObject(m_hDC, GetStockObject ( SYSTEM_FONT));
wglUseFontBitmaps(m_hDC, 0, 255, 1000);
glListBase(1000);
glCallLists(static_cast<GLsizei>(strlen(pText)), GL_UNSIGNED_BYTE, pText);
}
我可以在 FuncA 的任何地方打断点。如果我尝试进入 FuncB,它就会跳过。它将接受 FuncB 中的断点,但从不命中它。我知道它正在执行 FuncB,因为我可以在 FuncB 中调用 MessagBox() 并获取消息框。
在远离大量 VC6 使用几年之后,我是 VS2005 的新手。我在 VC6 的日子里回忆起的一种情况是,如果符号信息不可用。但是,在这种情况下,两个函数都在同一个文件中,因此符号信息必须正确。同样在那种情况下,我认为您甚至无法设置断点。
我已经尝试了所有愚蠢的巫术,比如重建整个解决方案。
我忽略了什么愚蠢的事情?
编辑:添加了 FuncB 的代码,以回应关于它可能基本上可以内联的评论。(这只是来自 MSDN 的 wglUseFontBitmaps [减去此处的注释] 的确切示例代码)。我看不出内联会如何阻碍每次调用。