Host Debugger Cross-Platform Debugging via VM Agent

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debuggers native to one operating system are unable to perform non-native system-level debugging on operating systems with different kernel types, limiting the ability to obtain correct symbolic information and perform debugging operations on guest operating systems.

Innovation Solution

A debugger native to a host operating system is enabled to perform non-native system-level debugging on a guest operating system by using an agent within a virtual machine to provide raw data and scripts that interpret this data to obtain symbolic information from a symbol server, converting it into usable names for debugging operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a debugger native to a host operating system is used, then debugging operations can be performed efficiently with native symbolic information, but the debugger cannot perform system-level debugging on guest operating systems with different kernel types

Engineering Contradiction:
Improvedebugger compatibilityVSAvoidsymbolic information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

A translation layer is introduced between the host debugger and guest operating system to convert guest symbolic information into host debugger-compatible format. This intermediary component enables cross-platform debugging by mediating the incompatibility between different operating system symbol formats, allowing the host debugger to access and interpret guest system symbols without requiring a native guest debugger.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If a native debugger for the guest operating system is used, then correct symbolic information can be obtained, but the debugger cannot be accessed from the host operating system

Engineering Contradiction:
Improvesymbolic information accuracyVSAvoiddebugging system architecture
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a virtual copy of the guest operating system environment within the host system through virtualization. This allows the host debugger to access and debug the guest OS while maintaining the integrity and symbolic information accuracy of the original guest system. The virtual copy enables cross-system debugging without requiring physical access to the guest hardware.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If cross-platform debugging is enabled, then debugger versatility improves, but the complexity of obtaining and interpreting symbolic information increases

Engineering Contradiction:
Improvecross-system debugging capabilityVSAvoidsymbolic information processing
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Symbolic information from the guest operating system is pre-processed and translated into host debugger-compatible format before debugging sessions begin. This preliminary translation action reduces the complexity during actual debugging operations, as the host debugger receives pre-formatted symbolic information that requires minimal additional processing or interpretation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10740217B1Non-native system-level debugging using symbolic information
Publication Date: 2020.08.11 PARALLELS INT GMBH
  • US10740217B1 patent drawing
  • US10740217B1 patent drawing
  • US10740217B1 patent drawing

AI summary

A method may include establishing a connection between a debugger native to a host operating system and an agent of a virtual machine executing a guest operating system. The host operating system and the guest operating system are of different kernel types. The method may also include receiving, from the agent, information pertaining to the guest operating system. The method may also include performing, using the debugger on the host operating system, non-native system debugging of the guest operating system based on the information pertaining to the guest operating system.