Register Stack Engine Backing-Store Memory Debug Reconstruction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for debugging and program-behavior analysis in computer systems require additional memory allocation for debug information, which can be inefficient and impractical, especially when debugging options cannot be used in production systems due to memory constraints and inefficiencies.
Innovation Solution
The method employs a register stack engine to automatically spill and restore register values from the backing-store memory, allowing for the reconstruction of processor states for nested routine calls without the need for additional memory allocation, using heuristic tests to identify stored register values in the backing-store memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If additional memory space is allocated for debug information, then debugging capability is improved, but memory consumption increases and can mask error conditions
Solution Approach 1:
The patent merges the debug information storage with the existing backing-store memory used for register spill/restore operations. By combining these two functions into a single memory structure, the system eliminates the need for separate debug information memory allocation, thereby avoiding the memory consumption issues while maintaining full debugging capability through the register stack engine.
2Reliability
If debug options are enabled during compilation, then register value recovery is improved, but compilation time and memory allocation requirements increase
Solution Approach 1:
The register stack engine performs self-service by automatically extracting and storing register values during normal program execution without requiring special compilation flags or additional debug infrastructure. The engine uses the existing backing-store memory and heuristic tests to identify and save register states, eliminating the need for separate debug compilation steps while maintaining accurate register value recovery.
3Reliability
If additional memory is allocated for stack frames, then nested routine analysis is improved, but system resource consumption increases
Solution Approach 1:
The backing-store memory is given multi-functionality by serving both its original purpose of storing register values for spill/restore operations and the additional purpose of storing debug information for nested routine analysis. This universal use of the same memory structure eliminates the need for separate memory allocation for stack frames, improving system resource efficiency while maintaining comprehensive analysis capability.
Data Source
AI summary
In various embodiments of the present invention, debugging and program-behavior-analysis software can reconstruct register-based processor states for nested routine calls from the backing-store memory employed by a modern processor, and by processors of similar architectures, to automatically spill and restore register values via a register stack engine. Sufficient information resides in the backing-store memory to reconstruct the stack frames for all nested routines. However, reconstructing the stack frames from the backing-store memory depends on identifying stored register vales in the backing-store memory containing saved values of the previous-frame-marker application register. Various embodiments of the present invention employ a set of heuristic tests to evaluate stored values in the backing-store memory in order to identify those values corresponding to the stored contents of the previous-frame-marker application register.


