【问题标题】:Visual Studio 2008 Debugging large c fileVisual Studio 2008 调试大型 c 文件
【发布时间】:2014-08-19 11:57:33
【问题描述】:

我正在调试一个非常大的 c 文件。它大约有 70000 多行代码。调试器无法正常运行,但是代码编译正确。是否有任何标志或需要设置的东西来调试这个文件。

编辑:

我已将函数的位置从文件底部更改为顶部,现在正在按预期调试函数。不知道原因

【问题讨论】:

  • define: "无法正常工作"
  • 当我进入一个函数时,从任何垃圾行(在同一个文件中)继续执行。我猜源代码行不同步,但是该函数产生的结果符合预期,但无法通过调试器见证。我重新编译了代码,因为我认为 pdb 文件可能不同步
  • 如果某处有 65536 行限制,我不会感到惊讶。例如。如果源代码位置以 32 位表示为 16:16 行:列对。
  • @MSalters 并不令人惊讶,但仍然:天啊!
  • @BeyelerStudios:为什么? C 可以追溯到约。 1980 年,当时 64K 字节是一个大型系统。字节,而不是行。很多CPU当时甚至没有 32位寄存器。 Z80 甚至没有 16 位累加器。编译器供应商应该在什么时候将其更改为 32 位行号?正确答案:当 生成 代码超过 64K 行时 - 这解释了为什么现在在调试器中出现问题。

标签: c debugging visual-studio-2008 large-files


【解决方案1】:

最简单的解决方案是将文件一分为二,将每个文件保持在 65535 行以下。很少有充分的理由拥有这么大的文件。优化在过去是一个薄弱的原因,但现在 Visual Studio 有/LTCG 链接时间代码生成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多