PDB文件实际上是做什么的?

7

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

如果我使用Visual Studio中的远程调试器连接到已加载运行代码的远程计算机,那么我是否实际上需要在远程计算机上拥有PDB文件?

如果在运行代码的机器上没有PDB文件和连接源代码的调试器,我会得到未处理的异常信息吗?

它们还能做什么?


经典资源在John Robbins的博客上。 - Stephen Cleary
2个回答

2
我不确定在远程调试情况下是否需要在远程计算机上安装PDB文件,但是除其他外,PDB文件包含源代码行号到编译后代码偏移量的映射。如果仅使用托管程序集,则无法逐步执行源代码。
由于托管程序集保留了许多原始源代码的文本符号名称,因此您可以使用调试器浏览托管可执行文件而不需要PDB文件,但是您只能查看类型名称和公共符号 - 您将无法看到局部符号的名称,因为这些名称不需要在运行时绑定到.NET程序集或JIT IL以将其转换为本机代码。
未处理的异常通知与PDB文件是否存在无关。如果调试器已连接到进程,无论是远程还是本地,调试器都将首先处理异常。

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接