如何用VS调试不属于解决方案的EXE和DLL程序-使用PDB和EXE文件-根据exe|pdb|源码文件进行调试分析

1.问题

如果你手里有一个现成的EXE, 以及EXE相关联PDB文件, 还有相关联的CPP文件和H文件. 你如何用VS调试? (当然你可以选择WinDbg.不过这里就讨论VS)。用 NMAKE 和 MAKEFILE 创建工程。已经编译链接好了。 得到了 EXE和PDB。 现在需要调试修改一下. 你又喜欢用VS调试, 怎么办? 对. 这就是下面要说的。

2.基本点

确保PDB文件和CPP文件以及H文件的相对路径不发生变化。因为PDB中保存了CPP文件和H文件的相对路径, 据此调试器才知道去哪里找源文件和头文件。如果挪动PDB文件或者CPP文件或者H文件,会导致它们之间的相对路径发生改变, 调试器就找不到符号。就没法打断点,后续的调试工作也就无法进行。

3.方法步骤

3.1.新建一个空的解决方案

3.2.构建源码项目

文件->新建->从现有代码创建项目->选择项目文件位置,可以新建一个空文件夹,比如VS_DEBUG\curlSrc, 项目名称比如说curlSrc, 然后将文件从这些文件夹添加到项目中,确保所有你写的CPP和H文件都在这个目录(这些源代码文件只是会被引入项目, 但不会拷贝到VS_DEBUG\curlSrc目录下, 也就意味着你仍然可以随时修改代码并用NMAKE构建而不必担心代码在VS中更新的问题)。

注意这一步非常重要, 如果你只是单纯地用VS打开某个源文件而不是把所有的源文件组织到一个解决方案里的话,
你是无法使用"转到定义", “转到声明”, “查看定义”, "查找所有引用"这些功能的, 你查看代码的时候会很麻烦。
在这里插入图片描述
输入项目名称:
在这里插入图片描述
添加包含源码文件夹:
在这里插入图片描述
完成即可创建源码项目工程。

3.3.添加pdb文件目录

找到pdb所在目录,如:E:\OpenSource\libCurl\VS2019\curl-7.61.0\builds\libcurl-vc16-x64-debug-dll-ssl-dll-zlib-dll-ssh2-dll-ipv6-sspi-obj-lib

在这里插入图片描述
把PDB文件的路径添加进去并打勾即可。

3.4.调试目标exe

右键源码解决方案,添加现有项目,选择目标exe文件,如下图所示:
在这里插入图片描述
在这里插入图片描述
将新项目设为启动项目:
在这里插入图片描述
然后在属性中设置调试参数,如入口参数。
在这里插入图片描述

4.源码断点

在这里插入图片描述
接下来就可以幸福的调试分析了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值