Practical Object-Oriented Back-in-Time Debugging

Practical Object-Oriented Back-in-Time Debugging
复制标题

实用的面向对象的实时回溯调试

DOI:
10.1007/978-3-540-70592-5_25
复制
发表时间:
2008
期刊:
ArXiv
影响因子:
--
通讯作者:
Oscar Nierstrasz
Oscar Nierstrasz
中科院分区:
--
文献类型:
--
作者:
Adrian Lienhard;Tudor Gîrba;Oscar Nierstrasz

文献摘要

被引文献

相似文献

返回辩论者是识别错误原因的非常有用的工具。不幸的是,试图记住All -Allypious状态的“无所不知”方法是不切实际的,因为它们消耗了太多空间,或者它们太慢了。几种方法依靠启发式方法来限制这些惩罚,但最终它们最终会抛出过多的相关信息。在本文中,我们提出了一种实用方法,该方法试图仅跟踪相关数据。与其他方法相反,我们将对象历史记录信息与应用程序内存中的常规对象保持一致。尽管看似违反直觉,但这种方法的效果是,从当前的应用对象(因此,不再相关)的数据是垃圾收集的。我们描述了我们方法的技术细节,并提出了基准,这些基准表明记忆消耗在实际范围内。此外,绩效罚款明显少于其他方法。
Back-in-time debuggers are extremely useful tools for identifying the causes of bugs. Unfortunately the "omniscient" approaches that try to remember allprevious states are impractical because they consume too much space or they are far too slow. Several approaches rely on heuristics to limit these penalties, but they ultimately end up throwing out too much relevant information. In this paper we propose a practical approach that attempts to keep track of only the relevant data. In contrast to other approaches, we keep object history information together with the regular objects in the application memory. Although seemingly counter-intuitive, this approach has the effect that data not reachable from current application objects (and hence, no longer relevant) is garbage collected. We describe the technical details of our approach, and we present benchmarks that demonstrate that memory consumption stays within practical bounds. Furthermore, the performance penalty is significantly less than with other approaches.