【发布时间】:2013-05-29 05:57:26
【问题描述】:
谁能解释一下这个屏幕:
如您所见,我有一个简单的数组 - 当我使用 A[0]、A1... 时,调试器会显示其元素的值 但我无法使用 local 变量 A[i] 获取元素(但“i”的值显示正确)。
项目设置:
调试信息:开启
本地符号:ON
优化:关闭。
项目(一个 PAS 文件)已构建,因此 DCU 是新鲜的。您可以在该屏幕上看到该测试项目的几乎完整代码,因此不可能在其他单元等中声明数组 A 或“i”...
现在我检查了 - Delphi XE3 中的相同代码完美运行 - 调试器显示所有值。 看来XE4在基本功能上有一个严重的bug :-((
【问题讨论】:
-
检查 A[i] 手表的属性并尝试在那里设置“允许函数调用”。只是向天空射击。
-
尝试添加
j:integer变量,将j := i添加到循环体中并改为观看A[j]。看到我变灰而且我看不到任何其他原因,这很奇怪(XE2 用户),除了它是循环变量。顺便说一句,开启优化,会有帮助吗? -
请发布您的“项目选项”窗口,选择“编译器”项,以便我们看到完整的配置。
-
High(A)返回什么?我不确定High如何与关联数组一起使用,但High(A)是否有可能返回最大值,而不是最高键?如果是这样,它可能正在尝试访问A[2],并且无法访问 -
我试图在旧版本的 Delphi 中重现并且有一些可能的行为......尽管在我的上下文中,优化是 ON。我想将您的完整配置(选择“编译器”的“项目选项”窗口)与我的@rafal-chlopek 进行比较。
标签: delphi debugging delphi-xe4