在软件开发过程中,调试是一个不可或缺的环节。特别是当涉及到团队协作和代码共享时,能够正确地调试代码变得尤为重要。本文将介绍如何使用符号服务器(Symbol Server)来调试代码,即使源代码不在本地也能进行。
在多地团队协作开发时,每个团队可能使用不同的开发服务器,并且源代码可能存储在不同的源代码控制系统中。在生产环境中,希望能够在没有源代码的情况下调试应用程序。为了解决这个问题,需要创建PDB(Program Database)对象,这是编译器用于调试并查找源代码的对象。
PDB文件包含了调试器执行工作所需的信息,例如源文件名、行号和局部变量名。其他数据已经包含在.NET元数据中。调试器使用文件名和嵌入在PDB文件和二进制文件中的GUID来查找正确的PDB版本。
要启用源代码控制PDB,需要按照以下步骤操作:
1. 创建公共构建定义:为项目创建一个公共构建定义。构建定义的详细信息可以在这里找到。
2. 创建共享文件夹:创建一个共享文件夹作为放置DLL和PDB的drop文件夹。这些DLL将在代码中被引用。
3. 创建符号服务器:创建一个共享文件夹作为符号服务器。符号服务器是集中存放PDB和所需源信息的地方。
4. 更新构建定义:更新构建定义以使用drop位置文件夹。这一步会设置符号服务器中的PDB位置,并进行源索引,创建源代码和源版本之间的映射。
5. 构建项目:现在需要实际构建项目,并准备客户端以使用符号服务器。
1. 引用DLL:确保从drop位置引用DLL。不必直接引用drop位置,可以将它们复制到喜欢的任何文件夹。确保将外部DLL和PDB与解决方案一起提交。
2. 配置Visual Studio:在Visual Studio中,转到“调试”→“选项和设置”,这将打开设置对话框中的调试部分。
3. 设置符号选项:转到“符号”选项,并添加符号服务器。可能会有几个,每个项目一个,或者一个集中的。要做到这一点,只需点击屏幕顶部的文件夹图标。
4. 启用源服务器支持:转到“常规”选项,并确保启用源服务器支持。
现在,已经准备好调试第三方代码了,而无需访问源代码。当调试时,调试器需要源代码时会弹出以下对话框:
如果不喜欢这个对话框,可以创建一个名为SRCSRV.ini的文件,将其放置在
[trusted commands]
tf.exe=\Common7\IDE\tf.exe
按照上述步骤操作后,不需要实际部署PDB文件。TFS在DLL文件和匹配的PDB文件中嵌入了一个唯一的GUID。使用符号服务器,调试器知道要查找正确的PDB。
请记住,如果按照这些步骤操作,不需要实际部署PDB文件。TFS在DLL文件和匹配的PDB文件中嵌入了一个唯一的GUID。使用符号服务器,调试器知道要查找正确的PDB。