Call Stack Parsing Across Mixed Runtime Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The analysis of a call stack in a computer system is challenging due to variations in calling conventions used by different runtimes and native code, making it difficult to determine the contents and structure of call stack frames, especially in mixed-calling-convention environments.

Innovation Solution

The proposed solution involves consulting each runtime to claim ownership of call stack frames and analyzing them according to their calling conventions. If no runtime claims ownership, a native code call stack frame analyzer is used to parse the contents based on symbol tables and heuristics, differentiating memory addresses from primitive types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a single calling convention is used for call stack frames, then parsing simplicity is improved, but adaptability to different runtime environments deteriorates

Engineering Contradiction:
Improveparsing simplicityVSAvoidadaptability to different runtime environments
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system dynamically changes the parsing parameters (calling convention) based on the runtime environment. Each runtime environment has its own calling convention parameters, and the system selects and applies the appropriate parameters when analyzing call stack frames from different runtimes, enabling both simplicity within each convention and adaptability across multiple conventions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system introduces an intermediary layer (the call stack analysis mechanism) that mediates between the raw call stack data and the interpretation logic. This intermediary automatically identifies the runtime environment and selects the appropriate calling convention, shielding the user from the complexity of multiple conventions while maintaining adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If runtime-specific analysis methods are used for each call stack frame, then analysis accuracy is improved, but system complexity deteriorates

Engineering Contradiction:
Improveanalysis accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the call stack analysis process by runtime environment. Each runtime environment (e.g., .NET, Java, native) has its own dedicated analysis method and calling convention knowledge. This segmentation allows each segment to be optimized for accuracy while the overall system manages complexity through modular organization of these segments.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8291381B2Call stack parsing in multiple runtime environments
Publication Date: 2012.10.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8291381B2 patent drawing
  • US8291381B2 patent drawing
  • US8291381B2 patent drawing

AI summary

Where a process in a computing system comprises mixed code, having different sections of code managed by different runtimes, the call stack used to coordinate function invocations may comprise call stack frames created according to multiple calling conventions. In order to analyze this call stack in a stack walk or unwinding, a debugger may be configured to request the runtimes managing the process to claim a particular call stack frame, and to request the runtime that claims it to parse the contents of the frame, or to utilize call stack analysis techniques if the call stack frame was created by unmanaged code.