How to Make Software Debugging Consistent Using Object Finalization Control
A method for virtual machines to pause and precisely replay the cleanup of computer objects, ensuring that debugging logs match the original program execution exactly.
Patent Number
US 9606820
Status
Active
Filing Date
April 22, 2014
Grant Date
March 28, 2017
Expiration
~April 2034 (estimated)
Claims
16
Assignee
CA Inc
Inventors
Jeffrey Daudel, Arpad Jakab, Marvin Justice, Suman Cherukuri, Dickey Singh, Jonathan Lindo, Humberto Yeverino
Citations
4 forward · 91 backward
What it covers
When a program runs, it creates and deletes objects in memory. The process of deleting these objects, called finalization, often happens at unpredictable times because it depends on the virtual machine's internal schedule. This patent describes a way to intercept the finalization process by modifying the 'Finalizer' class. It forces the system to pause the deletion of an object, record exactly when it should have been deleted, and hold it in memory until the replay system decides it is the right time to finish the job. This ensures that when a developer replays a recorded session to find a bug, the timing of object cleanup is identical to the original run.
What it doesn't cover
- —Does not cover general memory management or garbage collection outside of the specific context of programmatic replay.
- —Does not cover hardware-level memory protection or physical RAM management.
- —Does not cover non-deterministic systems that do not utilize a replay core or similar recording mechanism.
The clever bit
It turns the unpredictable nature of garbage collection into a controlled, staged event by injecting a 'wait' state into the object's own finalization logic, effectively tricking the virtual machine into deferring cleanup until the replay engine is ready.
Why it matters
Debugging complex software is difficult when the timing of events changes every time you run the code. By forcing deterministic behavior on object cleanup, this technology allows engineers to recreate exact failure states in a controlled environment. It is particularly useful for enterprise software where intermittent crashes are expensive and difficult to diagnose.
Real-world examples
- 1.Java Virtual Machine (JVM) debugging tools
- 2.Enterprise application performance monitoring suites
- 3.Software record-and-replay debuggers for distributed systems
Generated by PatentBrief · Not legal advice · patentbrief.org
US 9606820 · 2026