0

我用于调试的几乎所有语言工具都支持断点和步进模式,因此我可以一次查看范围内的特定数据。但是当我错过了程序中某些组件的神秘路径中的数据时,我仍然感到痛苦,尤其是当它在具有多个入口和出口的某些组件中蒸发时。

如果有一个工具可以“标记”一个数据并跟随它,以报告哪些功能(或其他基本计算单元)已经吞噬并转换了它,那么这种痛苦可能会被消除。这应该就像一些医学测试,给病人喂一颗辐射药丸,医生可以在外面追踪它。我知道回溯几乎是我需要的,但它仍然是一种在每一帧之间追踪基准的痛苦方式。

根据我(糟糕的)编程经验,最近的工具/语言是 Haskell 中的 Arrow 机制,它使用类型系统和组合来表示程序 IPO 路径的全貌。但它要求你的程序遵循它所倡导的方式,我不知道这是否是实现这个想法的最佳方式。尤其是你不能像其他语言那样轻松地编程,比如 C、C++、Ruby、Java 和 JavaScript。

4

1 回答 1

1

这是一项相当棘手的任务。您可以尝试使用面向方面的编程 (AOP) 来实现这一点,但我想说,找到对特定对象的所有访问(至少在 Java 中)并对其进行检测几乎是不可能的。

你能得到的最接近的可能是 AOP 中所谓的dflow-pointcut,唉,据我所知,它还没有在任何地方实现。

您最好的选择是在您的数据所在的特定地址范围上设置一个带有触发器的调试器断点(您需要首先弄清楚)。

于 2012-08-10T09:39:32.670 回答