c# - 如何附加到进程并调试未构建的代码?

标签 c# debugging attach-to-process

我正在处理一个项目并尝试修复系统中发现的错误。我有权访问的代码无法构建(这是一个包含大量 dll 文件的巨大项目,其中一些文件在我的工作区中丢失)。我可以访问我正在尝试调试的代码部分,但无法构建它。所以我启动了编译的 .exe 文件并在 VS 中附加到它。当我在代码中设置断点时,它被禁用并显示 No symbols have been loaded for this document. 所以我的问题是,调试器正在寻找哪些额外的信息/文件?我假设它正在寻找该特定程序集的 pdb 文件,我的机器上不存在该文件。

当我尝试附加到 exe 文件时,我收到此警告:

enter image description here

最佳答案

what additional info/files is the debugger looking for? I'm assuming it's looking for the pdb file for that specific assembly, which doesn't exist on my machine.

你的假设是正确的。

您可以通过以下方式解决问题:

  • 获取包含您的 PDB 的符号服务器的位置,并将 VS 配置为自动下载 PDB。
  • 通过其他方式获取 PDB。
  • 弄清楚如何自己构建它;构建您自己的 PDB。
  • 让构建它的人为您调试问题。这可能是他们的错误,所以让他们来完成这项工作。
  • 通过阅读源代码并在脑海中模拟程序的执行来调试问题。当您遇到代码在模拟中没有执行应执行的操作时,这就是您的错误。
  • 在调试器中调试问题,读取汇编代码而不是源代码。

关于c# - 如何附加到进程并调试未构建的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16488848/

相关文章:

c# - 潜在的并发问题?

visual-studio - VS 附加到进程已禁用

wpf - 尝试打开W​​PF项目时Visual Studio 2012崩溃

c# - C#WinForms应用-调试错误-长度不能小于零。参数名称: Length

visual-studio-2010 - Visual Studio远程调试器 "invalid access to memory location"功能

c# - ASP.NET Core 6 MVC : views are not mapped after adding Identity in project

c# - 我应该关闭 Assembly.GetManifestResourceStream 返回的流吗?

c# - 什么是 System.Web.Extensions?

javascript - jQuery 在任何浏览器中都无法在此页面上运行。我不知道为什么!

c++ - 介入时如何跳过VS 2008中的常见类(class)?