1

我在我的程序中进行了内部一致性检查,以验证相同代码的两次运行、相同的输入是否给出相同的结果。这个想法是在开发过程中检测下落不明的输入。如果检查失败,它会进入调试器。

这一切都很好而且很花哨,直到调试器中的一些其他操作——尤其是编辑并继续——在执行过程中修改了一次运行。我想检测到这一点并禁用一致性检查。

显然,因为检查本身需要调试器,所以我不能做一些简单的事情,比如 check Debugger.IsAttached

4

1 回答 1

1

我唯一能想到的就是使用某种时间(这似乎是一个糟糕的主意)。如果完成一项任务所需的时间比平时高出几个数量级,则可能表明某些东西正在被篡改。如果涉及磁盘读/写等事情,这可能会导致大量误报。同样,不是一个好主意,而只是一个想法

于 2016-06-02T18:20:27.897 回答