1

我想在 Visual Studio 中调试应用程序,但我只有 1 个类的源代码。我只需要单步执行该文件中的一个函数,但我不明白我需要做什么。我认为这些步骤通常是这样的:

  1. 在 VS 中打开文件
  2. 加载“符号”(.PDB 文件)
  3. 附加到正在运行的进程

我知道如何做#1 和#3,但没有.PDB 文件我不知道如何做#2。是否可以为此生成 .PDB 文件以使其工作?谢谢!

4

4 回答 4

7

您需要 *.pdb 文件(您的帖子中的第 2 步)这些文件包含源代码和已编译程序集之间的映射。所以你的步骤是正确的。如果您的源文件与原始文件有差异,请在 BP 的属性对话框中勾选“允许源代码与原始版本不同”。

Visual Studio 中的断点和跟踪点

如果您没有 PDB 文件,您可以尝试使用Reflector.FileDisassemblerFileGenerator For Reflector反编译您的项目。他们可以重新编译这些文件以获取 PDB

还可以看看Deblector - Reflector 的调试插件。

于 2008-09-20T05:09:09.487 回答
1

您需要属于您尝试调试的应用程序的符号文件 (.PDB) 文件。

MSDN:PDB 文件

Visual Studio 调试器使用 EXE 或 DLL 文件中 PDB 的路径来查找 project.pdb 文件。如果调试器在该位置找不到 PDB 文件,或者路径无效,例如,如果项目已移动到另一台计算机,则调试器将搜索包含 EXE 的路径,后跟“选项”对话框中指定的符号路径. 该路径一般是 Symbols 节点中的 Debugging 文件夹。调试器不会加载与正在调试的二进制文件不匹配的 PDB。

于 2008-09-20T05:08:57.660 回答
0

符号文件是 .pdb 文件。如果将其放在可执行文件旁边,则会加载符号并指向源文件。

于 2008-09-20T05:09:30.407 回答
0

在您的情况下,“符号”表示您要调试的程序集的 pdb 文件。调试器不需要您拥有所有源代码,只需要您拥有匹配的 pdb。pdb 是在程序集的构建过程中生成的,不幸的是,您不能事后创建一个。如果您没有 pdb,则需要在低于源代码的级别进行调试。

如果您在机器上构建了组件,那么在您附加时会找到这些符号。在这种情况下,只需在源代码上设置一个断点并执行使该代码运行所需的任何操作,您就会遇到断点。

如果您没有构建它,则需要找到程序集的 pdb。Debug/Windows/Modules 下的模块窗口通常可以帮助您告诉您在进程中加载​​的程序集以及版本信息和时间戳。

如果程序集可能有多个版本(例如保留许多夜间构建,或者来自持续集成构建的最后 20 个左右的版本),您将需要这些信息。

希望有帮助。

于 2008-09-20T05:25:09.823 回答