Scalable Execution Tracing with Compressed Partitions for Large Codebases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing source code analysis tools and debuggers are inadequate for efficiently understanding the common code paths in complex applications with large codebases, particularly due to their inability to quickly identify relevant code, imprecision in analysis, and burdensome configuration requirements, making it difficult for auditors and developers to identify security flaws and enhance code.

Innovation Solution

A method for scalable execution tracing that involves constructing a trace object with compressed partitions, generating a visualization data set, and using an interactive interface to display source code sections corresponding to executed lines, allowing for efficient exploration and identification of frequently used code paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing source code analysis tools and debuggers are used to analyze large codebases, then analysis coverage can be achieved, but the tools cannot quickly identify relevant code paths and require burdensome configuration

Engineering Contradiction:
Improvespeed of identifying relevant code pathsVSAvoidconfiguration requirements
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs preliminary actions by automatically generating and executing test cases that traverse the codebase before analysis. This pre-execution phase captures actual code paths taken during runtime, eliminating the need for manual configuration and enabling rapid identification of relevant code paths without burdensome setup requirements

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The analysis system serves itself by automatically generating test cases, executing them, and capturing execution traces without external intervention. The system self-configures by deriving analysis parameters from actual program execution behavior, eliminating the need for manual configuration and enabling rapid analysis of large codebases

Inventive Principle:
Principle #25Self-service

2Loss of information

If comprehensive code path analysis is performed on large codebases, then complete understanding of code flows can be achieved, but the amount of data to be processed becomes overwhelming

Engineering Contradiction:
Improvecompleteness of code path understandingVSAvoidvolume of trace data
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The system extracts only the essential and relevant information from execution traces by filtering out redundant data during capture. It extracts specific metrics such as code path frequency, execution time, and error conditions while discarding unnecessary intermediate states, thereby maintaining complete code path understanding with reduced data volume

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of capturing all possible execution data and then filtering, the system inverts the approach by pre-defining the essential metrics needed for code path understanding and capturing only those specific data points during execution. This inversion reduces data volume at the source while maintaining analytical completeness

Inventive Principle:
Principle #13The other way round (Inversion)

3Measurement precision

If detailed tracing is performed on all code sections, then complete execution information can be obtained, but the overhead of instrumentation and processing increases significantly

Engineering Contradiction:
Improveaccuracy of execution tracingVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system applies partial action by instrumenting and tracing only the critical code paths that are actually executed during test case runs. Instead of uniformly tracing all code sections, it focuses computational resources on the specific paths taken during execution, maintaining measurement precision while reducing overall overhead through selective instrumentation

Inventive Principle:
Principle #16Partial or excessive action

4Measurement precision

If manual analysis of large codebases is performed, then thorough understanding can be achieved, but it requires significant time and expertise

Engineering Contradiction:
Improvedepth of code understandingVSAvoidtime required for analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system implements feedback by automatically analyzing execution traces and generating insights about code path usage, performance bottlenecks, and potential errors. This automated feedback loop provides deep code understanding comparable to manual analysis but executes much faster by leveraging computational power to process traces and generate actionable insights without human intervention

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12353319B2Scalable execution tracing for large program codebases
Publication Date: 2025.07.08 ORACLE INT CORP
  • US12353319B2 patent drawing
  • US12353319B2 patent drawing
  • US12353319B2 patent drawing

AI summary

Indications of a plurality of events whose occurrence is detected in a particular execution of a program are obtained. One or more partitions of a trace object corresponding to the execution are constructed, including a first partition corresponding to a first subset of the events. The first partition comprises a header portion which includes a compressed representation of one or more event chains, and a data portion comprising a compressed events record indicating an occurrence, during the execution, of a particular sequence of events indicated by an event chain. The trace object is stored.