巨大的C文件调试问题

val*_*ldo 7 c c++ visual-studio

我的项目中有一个源文件,它有超过65,536个代码行(确切地说是112,444).我正在使用"sqlite amalgamation",它出现在一个巨大的源文件中.

我正在使用MSVC 2005.问题在调试期间到来.一切都编译和链接确定.但是当我尝试使用调试器进入函数时 - 它显示的代码行不正确.

有趣的是,正确的行号和调试器显示的行号之间的差异正好是65536.这让我怀疑(几乎可以肯定)一些无符号的短溢出.

我也怀疑它不是MSVC本身的错误.也许这是调试信息格式的限制.也就是说,MSVC使用的调试信息格式将行号存储为2字节短路.

有没有什么可以做的(除了将大文件切成几个较小的文件)?

Dus*_*sty 9

根据MS主持人的说法,这只是调试器的一个已知问题(编译器似乎正如你所指出的那样处理它).除了使用较短的源文件外,显然没有解决方法.请参阅此处对非常相似问题的官方回复