如何在没有pdb文件的情况下进行调试?

如何在没有pdb文件的情况下进行调试?

问题描述:

现状:如何在没有pdb文件的情况下进行调试?

  • 项目DEP是一个.NET类库项目,使用VS2015开发,针对.NET 4.5
  • 项目A引用DEP.dll(在DLL,而不是源代码项目本身)
  • 项目A和DEP是独立的解决方案

当我在调试模式下建立DEP部分,然后我调试项目A,我仍然可以进入从DEP代码,即使我没有看到pdb文件在DEP的输出文件夹中。我想知道如何调试DEP是可能的。我认为总是需要pdbs才能进行调试。或者,在调试模式下构建的dll是否包含足够的调试信息?

每个程序都是可调试的。调试器最基本的功能是单步处理器指令,查看处理器寄存器并检查内存。机器的灵魂。没有PDB,你永远不会得到的是能够查看源代码,单步语句和检查命名变量。实际上修复没有PDB的错误是非常不切实际的。

如果你实际上看到了源代码,那么这并不令人惊讶,调试器非常擅长定位PDB。如果你自己没有复制它,那么调试器可以在编译器放置它的原始位置的项目的obj\Debug目录中找到它。该PDB的路径嵌入在可执行文件中。你可以找到它是如何找到它的,使用Debug> Windows> Modules,右键单击该DLL并选择Symbol Load Information。它向你展示了调试器寻找PDB的每一处。

+0

我看到源代码。我不知道可执行文件包含PDB路径 – bvgheluwe