无法调试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一顿操作也成功了。
相关推荐
一只旭宝16 小时前
【C++入门精讲22】常见设计模式
c++·设计模式
c++之路18 小时前
Bazel C++ 构建系列文档(三):构建第一个 C++ 项目
开发语言·c++
旖-旎18 小时前
《LeetCode 695 岛屿的最大面积 FloodFill DFS 解法》
c++·算法·力扣·深度优先遍历·floodfill
森G18 小时前
61、信号与槽机制在 TCP 编程中的应用---------网络编程
网络·c++·qt·网络协议·tcp/ip
syagain_zsx19 小时前
STL 之 vector 讲练结合
c++·算法
牛油果子哥q19 小时前
STL set与map底层精讲,红黑树适配原理、有序去重特性、迭代器遍历、API实战与面试核心考点全解
开发语言·数据结构·c++·面试
奇妙方程式20 小时前
2026年第九届GXCPC广西大学生程序设计大赛(热身赛)题解
c++·编程比赛·编程竞赛·gxcpc
Tian_Hang20 小时前
C++原型模式(Protype)
开发语言·c++·算法
FL162386312921 小时前
[cmake]基于C++使用纯opencv部署ppocrv5v6的onnx模型
开发语言·c++·opencv
玖玥拾21 小时前
C/C++ 数据结构(六)链表迭代器与底层
c语言·数据结构·c++·链表·stl库