pdb文件实际上做了什么?

时间:2010-07-16 20:09:49

标签: .net debugging symbols

好的,我意识到PDB文件是.NET程序集的符号文件。但我从未真正研究过它们的扩展用途。

如果我从一个加载了运行代码的visual studio中使用远程调试器,我是否真的需要远程机器上的PDB文件?

在没有PDB文件和连接源代码的调试器的情况下运行代码的机器上是否会出现未处理的异常信息?

他们还做了什么?

2 个答案:

答案 0 :(得分:2)

我不记得在远程调试情况下远程机器上是否需要PDB,但PDB包含编译代码偏移映射的源代码行号。您不能仅使用托管程序集单步执行源代码。

由于托管程序集确实保留了原始源代码中的大量文本符号名称,因此您可以使用不带PDB的调试器在托管可执行文件中查找,但您只能看到类型名称和公共符号 - 您将看不到本地符号的名称,因为在运行时不需要绑定到.NET程序集或将IL与JIT本机代码绑定。

未处理的异常通知与PDB是否存在无关。如果调试器附加到进程,无论是否是远程调试器,调试器将在异常时获得第一次破解。

答案 1 :(得分:1)

远程计算机上不需要pdb。调试器本身必须能够找到它,而不是远程代理程序。