调试器不会进入MFC源代码

时间:2014-04-22 14:52:53

标签: c++ visual-studio-2010 visual-c++ mfc

我在VS2010中有一个新的SDI项目,但我无法进入MFC源。我按照here步骤进行操作,似乎资源符号由于某些原因而未加载,但是如果在那里投票最多的答案中所述,它不会加载右键。

当我进入调试>> Windows>模块,该窗口将符号状态列显示为Cannot find or open the PDB file。我想这就是问题,但当我右键点击任何一个模块(例如mfc100enu.dll)时,我得到另一个带有类似消息的对话框,但找不到符号文件。

如果找不到符号文件以及如何解决这个问题会出现什么问题?

Module Window

我想要介入的功能是我的基本SDI应用程序中的LoadFrame

BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext) 
{
    // base class does the real work

    if (!CFrameWndEx::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
    {
        return FALSE;
    }

...
}

任何提示如何不加载它们以及可能出错的地方?感谢

更新

我能够通过转到Tools-> Options-> Debugging-> Symbols并选择复选框" Microsoft Symbol Servers"来使VS2010加载符号文件。现在Visual Studio会自动加载PDB。但是我仍然无法进入这个功能。

4 个答案:

答案 0 :(得分:5)

我发现添加符号服务器并没有为我解决问题。

解决问题的方法是将此目录添加到位置列表以查找符号。不确定为什么Visual Studio不会自己添加它。

C:\ Windows \ Symbols \ dll

答案 1 :(得分:3)

将mfc库链接模式更改为静态库。 在项目属性中>>配置属性>>一般>>使用MFC

调试后,您可以更改回您喜欢的内容。 希望这有帮助。

答案 2 :(得分:2)

您需要Visual Studio Professional或更高版本。然后,您将获得MFC的源和调试符号。如果给出了这一点,您只需要确保PDB位于符号路径中,这应该是正确安装Visual Studio的情况。

答案 3 :(得分:1)

使用 Visual Studio 2019,我遇到了同样的问题。 我无法使用 VC 调试器进入 MFC 基类。 我已经通过添加符号目录解决了它。到“符号文件位置”。

工具 > 选项 > 调试 > 符号

  • C:\Program Files (x86)\Microsoft Visual Studio\2019\(版)\VC\Tools\MSVC\14.27.29110\atlmfc\lib\x86
  • C:\Program Files (x86)\Microsoft Visual Studio\2019\(版)\VC\Tools\MSVC\14.27.29110\atlmfc\lib\x64

另外,这个设置不能解决MBCS——多字节字符集项目。 对于多字节项目,您必须使用“Microsoft Symbol Server”。 VS 安装程序不会为您安装所需的符号文件。 这意味着您无法在没有公共网络的情况下将 MBCS 项目调试到 MS。

  • 选中“符号文件位置”中的“Microsoft 符号服务器”选项

查看下一个链接以获取更多信息。

https://docs.microsoft.com/ko-kr/cpp/mfc/mfc-mbcs-dll-add-on

https://support.smartbear.com/testcomplete/docs/app-testing/desktop/visual-c/preparing/mfc-debug-info.html#WindowsSymbolCache

我觉得VS2019的安装程序和安装太复杂了。 MS 迅速改变了它。在所有开发人员离开 VS 平台之前,他们不得继续。