VS无法调试MFC源码
起初
有时候就是这么无奈,MFC源码各种问题没有办法调试,可是又想看下代码如何调用,里面做了些什么,从哪儿调出,学习一下大神的思路什么的。整理一下有可能的原因。
检查生成代码设置
需要设置正确的生成配置
如果Release,或者没有生成调试信息,逻辑上都不通,调试不成是可以理解的。
符号文件
符号文件是一个很恶心的方面,需要联网,设置符号文件路径。如果也设置了,但是一直报这方面的问题,可以清理了重新下载。
设置完以后可以打开路径看看里面有什么,一大段文件,有东西才能调试。
有时候符号和源码版本不对应就需要设置一下不用完全匹配,毕竟是为了看代码,不是写代码。
加载模块 msvcpxxd.dll
在输出窗口要确认有调试版本的模块加载,msvcpxxd.dll,关键看d结尾的dll文件:xxd.dll,这个是debug版本的模块,用ctrl+f搜索msvcp即可。
没有模块咋整
需要安装一下子。随便找一个MFC的头文件,查找文件位置。
从头文件目录一直往上找,一直找到VC
VC里面的分发库安装一下。
- 注意对应的版本,版本不匹配就需要上面提到的设置。
- 如果系统安装有高版本的分发库,比如安装2017已经安装2019,那么就需要把高版本的分发库卸载了,再安装现在的版本,再安装高的版本,因为有高的版本现在的版本安装不上。安装以后系统就会有模块文件了。
- 注意自己系统位数,安装对应的分发库,现在一般都x64了。
断点
现在vs不知道为什么F12或者F10直接蹦不进去,就需要打开对应的.cpp文件,设置上断点,然后就能停到需要的地方了。
还有就是如果对应头文件的cpp文件在编辑器打开着的话,F12是能直接跳转的,如果没有打开那就没反应。
这里说的都是库文件,自己写的工程里面的是直接可以跳转的。
找不到cpp
找不到的话就需要一些手段了,比如我用Notepad++直接搜,确认是那个cpp文件实现的方法,然后把文件拉到VS里面打开,再继续下断点。
PS
- 我在公司电脑VS2017和VS2022一顿操作都成功了。
- 家里电脑VS2017一顿操作也成功了。