arXivDaily arXiv每日学术速递 周一至周五更新
arXiv cs/0309031cs.SE
收藏

基于时间戳的C和Java程序执行控制

Timestamp Based Execution Control for C and Java Programs

Kazutaka Maruyama, Minoru Terada

摘要:

许多程序员不得不处理一个被覆盖的变量,例如由于别名问题。罪魁祸首显然是在bug出现之前对该内存位置的最后一次写访问。移除这些bug的常用技术是从调试器开始,通过(1)找到最后一次写入,(2)通过从头开始重新执行程序,将执行的控制点移回该时间。我们希望将其自动化。如果我们能以某种方式标记在步骤(1)中发现的最后一次写入并控制执行点将其移回此时,则步骤(2)很容易。在本文中,我们提出了一个新的概念,位置,即程序执行轨迹中的一个点,需要上述步骤(2)。该职位使调试器能够自动控制程序执行,以支持常见的调试活动。我们在C中通过修改GCC实现了位置,在Java中通过字节码Transformer实现了位置。测量结果表明,该位置可以提供可接受的开销量。

英文摘要:

Many programmers have had to deal with an overwritten variable resulting for example from an aliasing problem. The culprit is obviously the last write-access to that memory location before the manifestation of the bug. The usual technique for removing such bugs starts with the debugger by (1) finding the last write and (2) moving the control point of execution back to that time by re-executing the program from the beginning. We wish to automate this. Step (2) is easy if we can somehow mark the last write found in step (1) and control the execution-point to move it back to this time. In this paper we propose a new concept, position, that is, a point in the program execution trace, as needed for step (2) above. The position enables debuggers to automate the control of program execution to support common debugging activities. We have implemented position in C by modifying GCC and in Java with a bytecode transformer. Measurements show that position can be provided with an acceptable amount of overhead.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑