无法调试MFC源码

VS无法调试MFC源码

起初

有时候就是这么无奈,MFC源码各种问题没有办法调试,可是又想看下代码如何调用,里面做了些什么,从哪儿调出,学习一下大神的思路什么的。整理一下有可能的原因。

检查生成代码设置

需要设置正确的生成配置,选择Debug调试,生成调试信息可以选生成调试信息,也可不选,不可以调试可以来回试验,但是要确保不是否。

如果Release,或者没有生成调试信息,逻辑上都不通,调试不成是可以理解的。

符号文件

符号文件是一个很恶心的方面,需要联网,设置符号文件路径。如果也设置了,但是一直报这方面的问题,可以清理了重新下载。

设置完以后可以打开路径看看里面有什么,一大堆文件,有东西才能调试。

有时候符号和源码版本不对应就需要设置一下不用完全匹配,毕竟是为了看代码,不是写代码。

加载模块 msvcpxxd.dll

在输出窗口要确认有调试版本的模块加载,msvcpxxd.dll,关键看d结尾的dll文件:xxd.dll,这个是debug版本的模块,用ctrl+f搜索msvcp即可。

安装微软分发库

要是没有找到模块怎么办?那就需要安装一下子了。

分发库位置

随便找一个MFC的头文件,查找文件位置。

从头文件目录一直往上找,一直找到VC

安装分发库

  1. 注意对应的版本,版本不匹配就需要上面提到的设置。
  2. 如果系统安装有高版本的分发库,比如安装2017已经安装2019,那么就需要把高版本的分发库卸载了,再安装现在的版本,再安装高的版本,因为有高的版本现在的版本安装不上。安装以后系统就会有模块文件了。
  3. 注意自己系统位数,安装对应的分发库,现在一般都x64了。

库源码进入

如果F10无法进入库代码,那就需要取消设置仅我的代码。

还有问题

F12或者F10直接蹦不进去,那就需要打开对应的.cpp文件,设置上断点,然后就能停到需要的地方了。

还有就是如果对应头文件的cpp文件在编辑器打开着的话,F12是能直接跳转的,如果没有打开那就没反应。

这里说的都是库文件,自己写的工程里面的是直接可以跳转的。

找不到cpp

找不到的话就需要一些手段了,比如我用Notepad++直接搜,确认是那个cpp文件实现的方法,然后把文件拉到VS里面打开,再继续下断点。

PS

  1. 我在公司电脑VS2017和VS2022一顿操作都成功了。
  2. 家里电脑VS2017一顿操作也成功了。
相关推荐
Tairitsu_H2 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
HugoStudio_SWAN2 小时前
洛谷 B4450 / B3867 / B3923 智慧购物、储蓄与做题——从程序到生活
c++·学习·程序人生·算法·生活
会周易的程序员4 小时前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
UIU1144 小时前
scanf与cout的误区:探究其内部的机制
c++·学习·c#·scanf
闻缺陷则喜何志丹4 小时前
【栈 运算系统】P3719 [AHOI2017初中组] rexp|普及+
c++·算法··洛谷·运算系统
bnmoel5 小时前
C++ 基础入门篇(一):命名空间,输入&输出,缺省参数,函数重载
c++·函数重载·语法·命名空间·缺省参数
Zixhy5 小时前
多点巡检机器人项目技术总结
linux·c++·机器人·自动驾驶
Pointer Pursuit7 小时前
C++11特性(二)
前端·c++·算法
tudousisi2228 小时前
CSP 第3题训练 Day 5|CSP202509C HTTP 头信息|Blog A
c++
闻缺陷则喜何志丹9 小时前
【动态规划】P10726 [GESP202406 八级] 空间跳跃|普及+
c++·算法·动态规划·洛谷