尝试调试 .NET 代码时,断点没有命中,尽管符号是根据调试模块加载的

问题描述 投票:0回答:0

我想在 .NET Framework 程序集中设置断点,但出现错误消息:“当前不会设置断点。没有为该文档加载任何符号。”

最初,问题似乎很容易解决;加载符号。为此,我做了以下工作:

  • Options > Debugging > General
  • 中禁用“只是我的代码”
  • Options > Debugging > General
  • 中启用“.NET Framework 源步进”
  • Options > Debugging > Symbols
  • 中启用“Microsoft Symbol Servers”
  • 清空符号缓存以防万一。
  • 确保选中“定义调试常量”和“定义跟踪常量”,并在
    Project Properties > Build
  • 中取消选中“优化代码”
  • 确保在
    Project Properties > Build > Advanced
  • 中将“调试信息”配置为“完整”
  • 在选择调试模式作为构建配置的情况下构建并启动项目。
  • 确保启动后符号加载完成后,每个模块的
    .pdb
    文件真实存在于符号缓存和引用项目中。

有了这个,去

Debug > Windows > Modules
据说所有受影响文档的符号都在“符号状态”下加载。根据此表,尝试调试时应该不会再出现问题。但是,实际上,断点处仍然存在完全相同的错误消息。 那么,符号是否加载不正确,以至于 Visual Studio 不知道,还是我需要检查其他问题?

以上是正题。下面是我尝试调试的问题的简要总结,以展示能够调试 .NET 代码的重要性。如果有人感兴趣,我可以发布一个新问题,以便将问题的解决转达给这个论坛上的好心人,而不是尝试执行调试 .NET 代码的任意简单任务。

我想要完成的就是找出与调用基类方法有关的问题。基础方法是.NET:

System.Windows.Forms.Control.ControlCollection.Add(Control)
,调用发生在方法重写中。问题是
Control
没有被添加到
InnerList
派生类实例的
ControlCollection
中。

c# .net visual-studio visual-studio-debugging debug-symbols
© www.soinside.com 2019 - 2024. All rights reserved.