debugging 我们可以使用PDB文件和不完整的源代码在Visual Studio中调试正在运行的进程吗?

ryoqjall  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(83)

我必须调试一个正在运行的进程,我有匹配的PDB文件,但没有完整的源代码。是否可以在可用的C++源代码中调试特定的函数?
我尝试在VS中配置PDB文件和源代码路径,然后附加到正在运行的进程,但执行没有停止在预期的位置。我在可用的源代码中添加了调试点,但它没有做任何更改,因为二进制文件是使用VS构建的。

n7taea2i

n7taea2i1#

我们可以使用PDB文件和不完整的源代码在Visual Studio中调试正在运行的进程吗?
你可以的

但需要注意的一点是,用于调试的源文件必须与用于构建二进制文件的源文件版本相同,PDB文件必须与二进制文件完全匹配。

解释这一点的官方文件:
Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?
例如,我在我这边创建了一个MFC Cpp文件,解决方案/项目的主要结构是:
x1c 0d1x的数据
在我构建解决方案/项目之后,将在解决方案目录下生成一个执行应用程序:



您只需要像这样选择执行应用程序和相关的pdb(确保它们在同一目录中。这一步是为了确保当附加二进制文件.exe时,VS将能够找到相关的pdb文件。):



之后,按照此官方文档使用附加流程功能来实现您的要求:
Attach to running processes with the Visual Studio debugger
此时,即使我删除了所有其他cpp文件,我仍然能够在视图树中命中断点:


相关问题