【问题标题】:Breakpoints does not point to the actual code断点不指向实际代码
【发布时间】:2013-03-28 11:07:39
【问题描述】:

有没有人知道什么可能导致断点不显示代码在特定文件中的实际位置?

这是我第二次发生这种情况..也许有人可以帮忙,我的参数:

我在 Visual Studio 2010 工作。

这个特别是一个静态库,但它也发生在我的 dll 中。

PDB 是在 Z7 中生成的,尽管在我的默认 pdb 生成中也发生了这种情况。

我确信代码是用正确的库编译的(也发生在 dll 中所以..)

我还有一些我最初怀疑会导致此问题的 Doxygen cmets(可能是?)

  • 附上一张图片,显示断点箭头与其实际位置的调用堆栈进行比较的位置..

谢谢!

【问题讨论】:

  • 重新编译后这个错误会消失吗?因为有时文件会不同步,重新编译/重建可以解决问题。
  • 不,它没有,很多很多重建
  • 清理整个项目,从头开始重建,然后重试。
  • 做了,还是不行

标签: c++ visual-studio-2010 debugging doxygen breakpoints


【解决方案1】:

如果您调试启用了优化的代码,则该方法可能只是内联。这至少是断点未指向正确位置的一种已证实来源。

【讨论】:

    【解决方案2】:

    我通常注意到的一种情况是,由于在调试时从源代码管理中获取文件而导致源文件发生更改。断点使用旧代码的行号。

    【讨论】:

    • 它没有改变,我的设置也不允许不同步的代码(如果源文件不匹配,那么根本没有断点)
    【解决方案3】:

    所以,Visual Studio 文本编辑器显然不能很好地适应 CR.. 我发现该文件有一些 CR(而不是 CRLF),这将编译器混淆在一起。 当我实际上故意犯了一个编译错误时,它甚至没有指向正确的行......

    所以我在每个 CR 之后添加了 LineFeeds(LF),它编译得很好...... (使用记事本++来检测它丢失的位置,但我相信VS也有办法......) 干杯。

    【讨论】:

      猜你喜欢
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2018-10-11
      • 2019-05-12
      • 2015-11-30
      • 1970-01-01
      • 2017-01-07
      相关资源
      最近更新 更多