2010-07-16 127 views
7

好的,我意识到PDB文件是.NET程序集的符号文件。但我从来没有真正考虑过它们的扩展用法。pdb文件实际上做了什么?

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

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

他们还做了什么?

+0

经典资源位于[John Robbins的博客](http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must -know.aspx)。 – 2010-07-16 20:18:29

+0

非常有用!谢谢! – Matt 2010-07-16 21:36:39

回答

2

在远程调试情况下,如果PDB在远程计算机上是必需的,那么我不记得手动,但除此之外,PDB包含编译代码偏移地图的源代码行号。您无法单独使用托管程序集来浏览源代码。

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

未处理的异常通知与是否存在PDB无关。如果一个调试器连接到进程,不管是否是远程的,调试器将首先破解这个异常。

1

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

相关问题