作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何在 C# 中跟踪变量值在运行时的变化?当我通过执行步骤跟踪变量时,我对调试器提供的相同功能感兴趣,只是我需要从我的代码中调用它。某种键值观察,但对于各种变量(本地、类、静态等),不仅是属性。因此,基本上,当变量的值发生变化时会收到通知。
最佳答案
您假设调试器可以跟踪变量变化。不能。
非托管代码是可能的,处理器有专用的调试寄存器,允许设置数据断点。最多提供三个。当它看到一个特定的内存位置被写入时,它会产生一个硬件中断。然而,这个非常有用的功能在托管代码中不可用。垃圾收集器与它完全不兼容,它移动对象,给它们另一个地址。
托管调试器确实支持断点上的“命中时”条件,允许您将信息转储到输出窗口。然而,这需要一个断点,它不能由变量值的变化触发。它还确实减慢了代码执行速度,因为调试器实际上在执行条件之前进入了中断状态。
放置此类断点的明显位置是在属性 setter 中。这就是您在代码中实现此功能所需要的。您可以在该 setter 中做任何您想做的事情,例如使用 Trace 类。
关于c# - 如何在 C# 中跟踪运行时的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912183/
我是一名优秀的程序员,十分优秀!