Timestamp Based Execution Control for C and Java Programs
Kazutaka Maruyama, Minoru Terada
Abstract
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.
Create a lesson
Related papers
PreciseCoder: Faithful and Generalizable Debugging Beyond Unit-Test Rewards
Yunkai Zhan, Miaosen Chai, Shangshang Wang et al.
SolBehave: Evaluating the Behavioural Correctness of LLM-Generated Smart Contracts
Giovanni Pio Delvecchio, Stefano Fantazzini, Giacomo Frisoni et al.
DTScribe: Generating Models for Digital Twin Reporting using Local Large Language Models
Kérian Fiter, Angelica Portocarrero, Bentley Oakes
SWE-MISBEHAVIOR: Benchmarking and Mitigating Boundary Violations in Software Coding Agents
Do Xuan Trong, Duc Anh Nguyen, Do Xuan Long et al.
Assessing the Quality of Concrete Scenarios Generated from Scenario Classes for Automated Driving
Lina Putze, Thies de Graaff, Jan Steffen Becker et al.
Soliduzz: Finding Miscompilations in Smart-Contract Compilers with Assertion-Driven Equivalence Oracles
Alexander Stromberger, Christoph Hochrainer, Valentin Wüstholz et al.