C++ 调试问题 - pdb 文件

Posted

技术标签:

【中文标题】C++ 调试问题 - pdb 文件【英文标题】:C++ Debug Problem - pdb file 【发布时间】:2009-11-15 09:46:33 【问题描述】:

我的项目中有几个 DLL,它们被定义为在同一个文件夹中创建它们的 *.pdb 文件(调试信息)。问题是该文件夹中实际存在的唯一 *.pdb 文件是属于最后编译的 DLL 的文件。结果我只能调试最后一个项目(每次编译都会删除文件夹中的所有 *.pdb 并创建当前编译的 DLL pdb 文件。)

我该如何解决? 我正在使用 Visual Studio 2003。

【问题讨论】:

您的项目结构是什么(它们都在同一个解决方案中)?你的构建过程和(非常明显)是什么,但你的 .pdb 都被称为不同的东西吗? 【参考方案1】:

您可以从项目设置中的Extensions to delete on clean 中删除 *.pdb,或者最好使用不同的中间目录。 这两个设置都在 Configuration Properties -> General

【讨论】:

+1 用于不同的中间目录。避免 obj 文件冲突的好习惯(node.obj 有人吗?:) 是的,我什至不知道可以共享中间目录而不会出现可怕的错误。【参考方案2】:

或者您可以为程序发布创建单独的文件夹,并始终从最新的发布文件夹编译和执行您的程序。通过这种方式,您还可以管理所有其他外部文件,例如图像等等。

【讨论】:

这不是解决方案。如果你只这样做,它会导致完全相同的问题。 好吧,当然所有程序都应该有自己的发布文件夹并单独存储。 我想我误读了你的意思。 “Compile [...] from the latest release-folder”我有点误导。

以上是关于C++ 调试问题 - pdb 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 pdb 调试调试 C++ COM dll 但没有源代码

尝试调试调用 C++ DLL 的 VBA,“未加载 wntdll.pdb”

OpenCV 3 Visual Studio 2017 调试,调用堆栈没有 .pdb 文件

什么是一 .pdb 文件?

pdb 调试初步

PDB 与 .exe 不匹配