Native Backtracing for Java Runtime Probing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for runtime probing of Java software applications are limited, as they either restrict probing to C/C++ runtime or allow only limited probing without providing necessary runtime information to software tools, hindering efficient analysis.

Innovation Solution

A method is introduced where a target method in a Java software application is modified to include calls to pre-processing, main, and post-processing helper methods, which collect and pass runtime information to a native method, enabling efficient runtime probing and analysis by software tools like Systemtap without requiring recompilation or restart.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If runtime probing is restricted to C/C++ runtime, then system stability is maintained, but probing capability for Java applications is limited

Engineering Contradiction:
Improveprobing capabilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a native method as an intermediary layer between Java helper methods and software tools. This native method receives runtime information from Java code and passes it to analysis tools, enabling Java probing capability while maintaining system stability through controlled interaction between Java and native code layers

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If helper methods collect and pass runtime information to native methods, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improveruntime information accuracyVSAvoidcode structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the probing functionality into distinct helper methods (pre-processing, main, post-processing) that each handle specific aspects of runtime information collection. This modular approach improves measurement precision by dedicating specific functions to specific tasks while managing complexity through clear separation of concerns

Inventive Principle:
Principle #1Segmentation

3Productivity

If target method is modified to include helper method calls, then productivity is improved, but manufacturing precision deteriorates

Engineering Contradiction:
Improveanalysis efficiencyVSAvoidcode modification accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent applies preliminary action by modifying the target method to include calls to helper methods before the actual analysis is performed. The helper methods are pre-configured to collect and prepare runtime information, so when the target method executes, the probing infrastructure is already in place, improving analysis efficiency while maintaining code modification precision through systematic preprocessing

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9710358B2Native backtracing
Publication Date: 2017.07.18 RED HAT INC
  • US9710358B2 patent drawing
  • US9710358B2 patent drawing
  • US9710358B2 patent drawing

AI summary

A system and method are disclosed for runtime probing of software. In accordance with one embodiment, a target method of a software application is modified to include a call to a first helper method and a call to a second helper method that occurs after the call to the first helper method. The first helper method collects runtime information, and at least one of the first helper method or the second helper method passes data comprising the runtime information to a native method that provides the data to a software tool (e.g., a performance monitoring tool, a debugger, etc.). The modified target method is then executed within a virtual machine.