G06F11/3644

Automatic span context propagation to worker threads in rich-client applications

Disclosed techniques relate to tracing a subsidiary thread of a web page application. In an example, a method includes providing a web page application to a web browser. The method further includes creating, from the web page application, a global tracer configured to log tracing data for the web page application and a span. The method further includes instantiating, from the web page application, a wrapper for a subsidiary thread. The wrapper is configured to execute shim code before executing the subsidiary thread. The method further includes passing, from the wrapper to the shim code, configuration data of the global tracer. The method further includes creating a subsidiary tracer from the shim code and the configuration data. The subsidiary tracer configured to log tracing data for the subsidiary thread and a thread span.

Binary experimentation on running web servers

Systems and methods to enable on-the-fly modification of running processes on a webserver more quickly and efficiently are discussed herein. A code vault is used to store binaries for use in production code running on a server, which are downloaded and implemented in the running process when authorized by developers. The process retrieves the binaries from the code vault to deploy the modifications to a specified audience without having to re-instantiate or run a parallel process with the new binaries. Binaries for different audiences or subsequent experiments may be downloaded onto the same machine, but remain isolated. Control of the deployments may require multi-factor or multi-user authentication and are logged for change control.

Scalable execution tracing for large program codebases

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.

SCALABLE EXECUTION TRACING FOR LARGE PROGRAM CODEBASES
20230094191 · 2023-03-30 ·

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.

Trace anomaly grouping and visualization technique

A trace anomaly grouping and visualization technique logically groups traces with anomalies to cases to enable software developers to monitor, diagnose and visualize the anomalies, as well as to solve the anomalies during application development and production. A client library of an investigative platform collects signals from traces (trace signal information). The technique organizes (groups) related trace signals of methods with anomalies (e.g., exceptions, performance abnormalities such as slowness) into datasets (denominated as “cases”) based on common cause for an anomaly and correlates the signals to identify a case. The collected information may be used to differentiate between root causes of the anomalies using a comparative visualization of traces displayed on a standard user interface of the investigative platform. As such, the technique facilitates an understanding of differences among traces of executable code that resulted in the failure and traces without failure by providing the ability to comparatively examine views of those traces displayed on the standard UI. Signals of two or more traces may be selected and displayed side-by-side for comparison. The traces may be selected from a general notion of a healthy trace and a failed trace.

SELF-DEBUGGING
20220350728 · 2022-11-03 ·

In overview, methods, computer programs products and devices for securing software are provided. In accordance with the disclosure, a method may comprise attaching a debugger process to a software process. During execution of the software process, operations relevant to the functionality of the code process are carried out within the debugger process. As a result, the debugger process cannot be replaced or subverted without impinging on the functionality of the software process. The software process can therefore be protected from inspection by modified or malicious debugging techniques.

SMART SPAN PRIORITIZATION BASED ON INGESTION SERVICE BACKPRESSURE

Disclosed techniques relate to automatically instrumenting a web application. In an aspect, a method identifies that a web application includes an event that is triggered by a user interaction. The method associates the event with a tracer that is configured to log tracing information based on an execution of a first set of operations caused by the event and to obtain a first measurement of performance of a first span. The method identifies, in the code, that the execution of a first set of operations causes a request to be made to a server. The method associates the request with the tracer. The tracer is configured to log tracing information based on an execution of a second set of operations caused by the request and to obtain a second measurement of performance of a second span that is a child span of the first span.

CODE EXECUTION RECORDING VISUALIZATION TECHNIQUE

A visualization technique provides a user interface (UI) configured to display a recording of code execution in an intuitive manner that allows a user to walk-through and visually render the recorded code execution. The recording includes trace and application data embodied as one or more frames corresponding to invocations of code and associated values as captured during code execution. The UI displays the captured recording of code execution in the form of a call graph that illustrates the frames along with their corresponding methods and values, in context. By selecting a frame, the execution of code may be visualized on the UI in an organized manner across different methods invoked during execution of the code. The UI visualization feature of the technique provides a user with a concrete representation of code execution in an organized flow that enables the user to walk-through the recording in the same manner in which the code was executed.

Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction

In an embodiment, a system is configured to replay and/or reconstruct execution events and system states in real time or substantially in real time starting from the point when execution of a target program has stopped to the point when the user desires to step through the target program's execution in order to debug the software. In an embodiment, a system is configured to efficiently collect trace data that is sufficient to reconstruct the state of a computer system at any point of time from the start of execution to the time execution was stopped. Efficient and effective debugging of the software can be performed using embodiments of the disclosed methods, systems, and devices.

DEBUGGING DATAFLOW COMPUTER ARCHITECTURES
20230079727 · 2023-03-16 ·

Disclosed in some examples are methods, systems, devices, and machine-readable mediums that use parallel hardware execution with software co-simulation to enable more advanced debugging operations on data flow architectures. Upon a halt to execution of a program thread, a state of the tiles that are executing the thread are saved and offloaded from the HTF to a host system. A developer may then examine this state on the host system to debug their program. Additionally, the state may be loaded into a software simulator that simulates the HTF hardware. This simulator allows for the developer to step through the code and to examine values to find bugs.