这一定是 Delphi 的错误...
我有一个单元,它是我的持久性框架的基础。在该单元中,我有一个用于所有域对象的基类、一个列表类和一个通用列表类。
最近我注意到,当我在调试时进入该单元时,执行会跳转到文件中比应有的位置更靠下的位置......可能四到五行。重新排序文件没有什么区别。该代码还会生成访问冲突,但仅在我对其进行调试时发生。
我试图找到这个问题的原因...我想到了几件事,比如调试器中的一些代码注入(inject)(例如 this logitec webcam driver bug ),或者调试信息与我的单元源不同步(例如,DCU 是从某个旧来源中提取的)。
最后,我启动了一个安装了干净的 Windows + Delphi 的虚拟机,仅获取测试该单元所需的内容,并创建了一个小型 DUnit 项目来测试它。同样的问题。
然后我开始一次一个地从设备中移除一些东西,直到它工作为止。唯一有区别的是当我删除通用列表类时。
还有其他人遇到过这个问题吗?有谁知道如何解决它吗?
提前致谢,
N@
更新:将通用添加回设备中会使问题再次出现,因此这不是过时的 DCU 的问题。
最佳答案
您是否确保相关单元的所有行都以 CR LF 结尾?调试器不能只处理 CR 或 LF,而编辑器可以。 Notepad++、TextPad 等可以显示是否存在混合物。在[Windows]记事本中加载并重新保存即可解决。
关于delphi - 在单元破坏调试信息中通用定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920434/