3

当我不在断点时,是否可以看到具有实时值的手表列表?

  • 我在 a 的公共部分定义了一个整数 Mycounter TDatamodule
  • 我将它添加到监视列表中。
  • 只有当我逐行调试或处于 rbeakpoint 时,我才能在观察列表中看到它的值正在更新。

即使控件返回 VCL 线程(=当我按 F9 时),有没有办法在监视列表中继续看到它的值?

4

2 回答 2

10

正如大卫所说,监视是不可能的,但您可以通过向变量添加数据断点并让它在每次更改时将其值转储到事件日志中来接近。

脚步

  • 获取您要跟踪的变量的地址。
  • 添加数据断点
  • 打开事件日志调试窗口

获取变量的地址

  • I在示例中使用了该变量。根据您的示例,这应该是@Mycounter

获取地址

添加数据断点

  • 使用变量的地址
  • 取消选中Break复选框
  • 评估表达式PInteger($45622C)^
  • 记录结果

设置数据断点

查看结果

在此处输入图像描述

于 2013-10-07T11:24:57.117 回答
5

无法从 IDE 执行此操作。监视评估需要暂停进程中的所有线程,以便调试器可以读取内存并执行评估。

如果您希望在不破坏调试器的情况下看到值被刷新,您很可能必须向应用程序中添加代码来检测感兴趣的值。例如,OutputDebugString()只要值更改,就将代码添加到您的应用程序输出调试消息(例如,CodeSite 等)。您当然需要在单独的查看器中查看信息。

于 2013-10-07T10:58:00.310 回答