无法调试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一顿操作也成功了。
相关推荐
大筒木老辈子5 分钟前
C++笔记---并发支持库(atomic)
java·c++·笔记
zero_hz6 分钟前
核心区分:用户态/内核态切换 vs. 程序阻塞
c++·io·内核态用户态
胡萝卜3.07 分钟前
深入C++可调用对象:从function包装到bind参数适配的技术实现
开发语言·c++·人工智能·机器学习·bind·function·包装器
看见繁华30 分钟前
C++ 高级
开发语言·c++
点云SLAM38 分钟前
constexpr 和 explicit 在 C++ 中被提出的动机
开发语言·c++·explicit关键字·隐式转换·constexpr关键字·c++11/17/20
冷崖41 分钟前
工厂模式-创建型
c++·设计模式
qq_310658511 小时前
mediasoup源码走读(六)——NetEQ
服务器·c++·音视频
qq_433554542 小时前
C++树形DP(树上分组背包)
c++·算法·深度优先
电子_咸鱼2 小时前
常见面试题——滑动窗口算法
c++·后端·python·算法·leetcode·哈希算法·推荐算法
肥大毛4 小时前
C++入门学习---结构体
开发语言·c++·学习