无法调试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一顿操作也成功了。
相关推荐
苦藤新鸡2 小时前
8.最长的无重复字符的子串
c++·力扣
꧁Q༒ོγ꧂3 小时前
C++ 入门完全指南(四)--函数与模块化编程
开发语言·c++
汉克老师3 小时前
GESP2025年12月认证C++八级真题与解析(判断题8-10)
c++·快速排序··lcs·gesp八级·gesp8级
qq_433554543 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
HL_风神4 小时前
设计原则之迪米特
c++·学习·设计模式
HL_风神4 小时前
设计原则之合成复用
c++·学习·设计模式
汉克老师5 小时前
GESP2025年12月认证C++八级真题与解析(单选题10-12)
c++·递归··gesp八级·gesp8级
bkspiderx5 小时前
C++中的map容器:键值对的有序管理与高效检索
开发语言·c++·stl·map
Hard but lovely5 小时前
Linux: 线程同步-- 基于条件变量 &&生产消费模型
linux·开发语言·c++
L_09076 小时前
【C++】高阶数据结构 -- 平衡二叉树(AVLTree)
数据结构·c++