【问题标题】:Debugging in Delphi (RAD Studio) - viewing class properties in Watch List在 Delphi (RAD Studio) 中调试 - 在 Watch List 中查看类属性
【发布时间】:2014-06-06 11:44:47
【问题描述】:

当我在代码中设置断点并想检查 RAD Studio 2009(Delphi 项目)中某个类的属性时,我无法在 Watch List 或 Local Variables 列表中看到它们。

我看到的只是 作为 TSomeClass 的指针(地址)

为什么我会看到这个?我还使用 Visual Studio,它很棒——我可以看到属性和某个类的所有成员。

我确信在某些旧版本的 Delphi 中也可以使用相同的方法(有一个小的 [+] 可以展开以查看类属性)。

是否有一些设置(我已关闭优化,打开调试...)

也许这是一个微不足道的问题,但我无法继续我的项目,因为这对我来说真的很不舒服。

【问题讨论】:

    标签: visual-studio delphi debugging ide


    【解决方案1】:

    你不是在比较喜欢和喜欢。 Delphi 截图中的变量是一个接口。它没有数据成员,只有方法。调试器不会调用方法来显示工具提示等,因为方法可能有副作用。您不希望您的工具提示改变程序的含义。

    另一方面,您的 VS 示例是一个具有数据成员的类。这些在 VS 和 Delphi 中都很好地显示在调试器中。

    【讨论】:

    • 好的,如果 ActiveConfiguration 是属性,为什么我看不到 ProjectOptionsConfs.ActiveConfiguration := nil(第一个屏幕,第一个绿色箭头)?或者另一个:属性 ConfigurationCount: Integer ??
    • 出于我在答案中解释的原因。接口没有数据成员。它只有方法。方法可能有副作用。您不希望工具提示评估有副作用。我正在努力寻找如何才能更清楚地解释这一点。
    • @Slappy 它们可能是属性,但这些属性是由方法支持的。 Delphi 无法知道这些方法是否有副作用。所以 - 为了您的利益 - 它不会自动评估任何可能改变程序行为的东西。有几种方法可以告诉 Delphi“你知道得更好”并强制它进行评估。例如。使用“调试检查器”或“监视属性”。但是工具提示是触发副作用的一个非常糟糕的地方。
    • 好的,这听起来很合理。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多