如何使用符号服务器进行代码调试

在软件开发过程中,调试是一个不可或缺的环节。特别是当涉及到团队协作和代码共享时,能够正确地调试代码变得尤为重要。本文将介绍如何使用符号服务器(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 StudioVisual Studio中,转到“调试”→“选项和设置”,这将打开设置对话框中的调试部分。

3. 设置符号选项:转到“符号”选项,并添加符号服务器。可能会有几个,每个项目一个,或者一个集中的。要做到这一点,只需点击屏幕顶部的文件夹图标。

4. 启用源服务器支持:转到“常规”选项,并确保启用源服务器支持。

现在,已经准备好调试第三方代码了,而无需访问源代码。当调试时,调试器需要源代码时会弹出以下对话框:

如果不喜欢这个对话框,可以创建一个名为SRCSRV.ini的文件,将其放置在\Common7\IDE文件夹中,并填写以下文本:

[trusted commands] tf.exe=\Common7\IDE\tf.exe

按照上述步骤操作后,不需要实际部署PDB文件。TFS在DLL文件和匹配的PDB文件中嵌入了一个唯一的GUID。使用符号服务器,调试器知道要查找正确的PDB。

注意事项

请记住,如果按照这些步骤操作,不需要实际部署PDB文件。TFS在DLL文件和匹配的PDB文件中嵌入了一个唯一的GUID。使用符号服务器,调试器知道要查找正确的PDB。

资源

  • 开发者需要知道的PDB信息
  • 如何配置自己的符号服务器以及如何在生产中调试
  • 调试系列:符号服务器和符号
  • 调试系列:符号服务器
  • 如何在VS中设置符号服务器
  • 如何禁用源文件对话框
  • PDB、TFS和保留策略
  • 硬核符号服务器
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485