【问题标题】:Attaching to Process Issue附加到进程问题
【发布时间】:2011-09-30 13:28:46
【问题描述】:

在 VS 2010 中,我将我的源代码附加到一个进程以进行调试。我在 log4net 日志显示失败的行上设置了一个断点。

当我设置断点、启动并附加到进程时,断点显示为清晰。当我将鼠标悬停在断点上时,一个警告说我的断点不会被命中,因为那个特定的符号没有被加载。

我不明白我怎么会选择错误的源文件来设置断点。我直接从日志中得到它,它给出了我的代码失败的文件和行的绝对路径。

请给我建议。

谢谢

【问题讨论】:

  • 调试 + BreakAll。调试 + Windows + 模块。在列表中找到 DLL,右键单击它并选择“符号加载信息”。它显示了调试器在哪里寻找 .pdb 文件。

标签: visual-studio-2010 debugging


【解决方案1】:

clear bp 表示您正在查看的源代码没有被执行。我们知道这是事实。

所以 a) 您附加了错误的源代码 b) 您的源代码已过时或与二进制文件不完全匹配 c) 如果您有一个要链接的预构建二进制文件(dll 或 . lib)可能您需要下载官方的“调试符号”——因为“发布”二进制文件不包含足够的信息来将其与源代码相关联。如果未提供这些,您可能需要自己从源代码重建 3rd 方库,以便进行调试构建。

有一段时间没有做 Visual Studio,所以这可能有点不对劲。

【讨论】:

    【解决方案2】:

    我不明白我怎么会选择错误的源文件来设置断点。我直接从日志中得到它,它给出了我的代码失败的文件和行的绝对路径

    您没有选择错误的源文件(很可能)。问题是 Visual Studio 需要的不仅仅是点击您设置的断点 - 它需要 pdb 文件希望在您编译正在调试的应用程序时创建 - 你有这些文件吗?你是在 Debug 还是 Release 模式下编译的?

    打开模块窗口(调试 -> Windows -> 模块)并查找您的 dll/exe。右键单击它并选择“符号加载信息”。说什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多