监视记录字段更改

时间:2020-07-07 10:41:36

标签: delphi delphi-xe5 conditional-breakpoint

目前,我正努力监视记录字段的更改。

说,我们像往常一样定义了一条记录:

TMyRecord = record
  Field1: Word;
  Field2: Single;
  Field3: Integer;
end;

我想监视Field2并在该字段从<> 0更改为= 0时显示一个对话框。

最好使用本机的Delphi调试器方法来中断此事件,但是这里不可能有数据断点,因为该记录有多个数组,这些数组分布在整个程序中,我需要监视它们中的每一个(这意味着,我应该为每个数据断点都知道一个地址)。

下一个想法是创建一个属性来补充此字段并监视其设置程序。这也是不可能的,因为记录是从文件整体(作为二进制块)加载的,或者是由DLL调用整体修改的。在我不知道的程序中,有太多地方可以更改这些记录。

我的最后一个想法是在记录中放入一个计时器,但是

  1. 如何在创建记录时创建计时器?
  2. 如何解决最大计时器问题?数组中有数千条这样的记录。

我被困住了。除了找到该记录的所有读/写位置之外,您还能提出其他想法吗?

0 个答案:

没有答案