Unified Address Space Debugging via Intermediary Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Debugging in multiple address space environments is challenging due to the inability of debuggers to translate unified address space abstractions across target address spaces, making it difficult to examine and debug applications that use multiple address spaces.
Innovation Solution
The solution involves recording and accumulating debug information that maps between unified address spaces and target address spaces, using two-component pointers with a tag component for identifier values and an offset component for relative offsets, to facilitate translation and debugging across multiple address spaces.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a unified address space abstraction is used to provide transparent access to memory locations across multiple address spaces, then ease of operation is improved, but debugging capability deteriorates because the debugger cannot translate unified addresses to target address spaces
Solution Approach 1:
The patent introduces debug information as an intermediary layer between the unified address space and multiple target address spaces. This debug information contains mapping relationships that enable the debugger to translate unified addresses to specific target address spaces, thereby resolving the contradiction between unified access and debugging capability
Solution Approach 2:
The patent adds an additional dimension of address translation by introducing a second level of address mapping. The unified address space operates at one level while the debug information provides a translation layer to the actual target address spaces, enabling both unified access and precise debugging
2Difficulty of detecting and measuring
If debug information is recorded to map between unified address space and target address spaces, then debugging capability is improved, but device complexity increases due to the need for additional mapping structures
Solution Approach 1:
The patent applies preliminary action by recording debug information during the compilation phase, before the actual debugging session. The compiler generates and stores the mapping relationships between unified addresses and target addresses in advance, so that the debugger can directly use this pre-computed information without performing complex real-time translations
Solution Approach 2:
The patent creates a copy of the address mapping relationships in the form of debug information. This copy contains the essential translation data needed for debugging, allowing the debugger to work with simplified address mappings while the actual execution uses the unified address space abstraction
Data Source
AI summary
The present invention extends to methods, systems, and computer program products for debugging in a multiple address space environment. Embodiments of the invention include techniques for recording debug information used for translating between an abstract unified address space and multiple address spaces at a target system (e.g., a co-processor, such as, a GPU or other accelerator). A table is stored in the recorded debug information. The table includes one or more entries mapping compiler assigned IDs to address spaces. During debugging within a symbolic debugger, the recorded debug information can be used for viewing program data across multiple address spaces in a live debugging session.


