Instruction Sequence Forensics via Runtime Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development tools, such as debuggers and static analysis tools, are inadequate for analyzing and visualizing the execution behavior of complex instruction sequences in operational environments, as they are either too intrusive or unable to isolate specific instruction sequence behavior amidst unpredictable inputs and outputs, leading to difficulties in identifying anomalous results.

Innovation Solution

A system and method for instruction sequence execution visualization and analysis, where a set of functions in a general-purpose function library captures execution flow and intermediate values, allowing for forensic data collection and visualization, enabling the examination of instruction sequence behavior post-execution and providing insights into correct or faulty logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If debuggers are used to interactively inspect program behavior, then logic errors can be identified, but the tool becomes highly intrusive and stops program execution

Engineering Contradiction:
Improveinspection accuracyVSAvoidprogram continuity
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent applies preliminary action by instrumenting the code during the development phase to capture execution data, rather than requiring post-execution debugging. Execution data capture mechanisms are embedded in the code before deployment, allowing continuous operation without interruption while still enabling detailed inspection of program behavior.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the execution data and state information to a separate storage medium, allowing analysts to inspect program behavior without affecting the actual running program. This copying approach enables detailed examination while the original program continues to execute uninterrupted in the operational environment.

Inventive Principle:
Principle #26Copying

2Reliability

If static analysis tools are used to examine source code, then potential errors can be detected without execution, but most logic errors remain undetected

Engineering Contradiction:
Improveerror detection capabilityVSAvoidlogic error detection accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary instrumentation of the code during development to embed data capture capabilities, enabling dynamic analysis that goes beyond static analysis. This preliminary preparation allows the system to capture actual runtime behavior, including logic errors that static analysis cannot detect.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary execution data capture layer between the source code and the analysis tools. This intermediary captures actual runtime execution data, variable states, and control flow information, providing concrete evidence of logic errors that static analysis alone cannot identify.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If system loggers are used to generate text output during operation, then system behavior can be logged, but information about specific instruction sequences becomes indiscernible amidst voluminous data

Engineering Contradiction:
Improvelogging volumeVSAvoidinstruction sequence analysis clarity
Core Design Contradiction:
Quantity of substanceVSMeasurement precision

Solution Approach 1:

The patent segments the logging system to capture and store execution data for specific instruction sequences separately from general system logs. By organizing logs into discrete, queryable units associated with particular code blocks or functions, the system maintains comprehensive logging volume while enabling precise retrieval and analysis of specific instruction sequence behavior.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary data capture and indexing layer that processes voluminous log data and organizes it by instruction sequence identifiers. This intermediary structure allows efficient filtering and retrieval of specific instruction sequence information from the overall log volume, making targeted analysis feasible despite the large total data quantity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If code is instrumented to capture execution data, then detailed behavior can be recorded, but the operational environment may be altered

Engineering Contradiction:
Improveexecution data detailVSAvoidoperational environment integrity
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent uses copying to create replicas of execution data and state information rather than modifying the operational environment directly. All detailed execution data is captured as copies to external storage, ensuring the original operational system remains unaltered and reliable while still enabling comprehensive analysis of execution behavior.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10073764B1Method for instruction sequence execution analysis and visualization
Publication Date: 2018.09.11 NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA LLC
  • US10073764B1 patent drawing
  • US10073764B1 patent drawing
  • US10073764B1 patent drawing

AI summary

Various technologies pertaining to computer-executable instruction sequence forensics are described herein. In a general embodiment, an application development framework supports a function library that includes a plurality of recording functions. Calls to these functions are inserted into source code or bytecode of the computer-executable instruction sequence. The source code is then compiled, resulting in formation of instrumented machine code of the computer-executable instruction sequence. Alternately, the runtime environment interprets instrumented bytecode for the instruction sequence. A processor executes the machine code, and the called functions cause the processor to generate forensic data pertaining to portions of the computer-executable instruction sequence that correspond to locations in the source code where the calls were inserted. An execution instance of the computer-executable instruction sequence is visualized based upon the forensic data.