有没有办法从被调试的程序中检测调试器是否已被使用?

时间:2016-06-01 17:07:18

标签: c# .net visual-studio visual-studio-2010 edit-and-continue

我的程序中有一个内部一致性检查,用于验证具有相同输入的两次相同代码的运行是否给出相同的结果。我们的想法是在开发过程中检测未计入的输入。如果检查失败,则会进入调试器。

在调试器中执行其他操作之前,这一切都很好,花花公子 - 尤其是编辑并继续 - 在执行过程中修改一次运行。我想检测到这一点并禁用一致性检查。

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

1 个答案:

答案 0 :(得分:1)

我唯一能想到的是使用某种时机(这似乎是一个糟糕的主意)。如果完成一项任务所需的时间比平常高几个数量,那么这可能是一些事情被篡改的迹象。如果涉及磁盘读/写等事情,这可能会导致许多误报。再次,不是一个好主意,而只是一个想法