如何在没有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的每一处。
我看到源代码。我不知道可执行文件包含PDB路径 – bvgheluwe