# US 10,372,589 B2 · Multi environment aware debugger

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,589 B2
- Document ID: US10372589B2
- Status: Granted
- Kind: B2
- Application number: 15/844,615
- Filed: 2017-12-17
- Published: 2018-07-19
- Granted: 2019-08-06
- Earliest claimed: 2017-01-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Mansi Gaba; Gurudayal Khosla; Shunmugaraja Periadurai
- Web page: https://patentgrep.com/patent/US10372589B2

## CPC

- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Stepwise execution of different instances of an application can be initiated, in parallel, in different computing environments. Responsive to an execution step being performed in the different computing environments, a determination can be made as to whether a first data set generated by an operation performed in the execution step by a first instance of the application matches a second data set generated by the operation performed in the execution step by a second instance of the application. If the data sets do not match, the second data set can be replaced with the first data set in memory of an operating system in which the second instance of the application is executed. At least one additional execution step can be performed. An indication of whether the additional execution step performed properly can be output.

## Claims

### Claim 1

A method, comprising:
initiating a stepwise execution of a first instance of an application in a first computing environment hosted by a first data processing system and, in parallel, initiating the stepwise execution of a second instance of the application in a second computing environment hosted by a second data processing system, wherein the second computing environment is different than the first computing environment;
responsive to an execution step being performed by the first instance of the application and the second instance of the application, determining whether a first data set generated by an operation performed in the execution step by the first instance of the application matches a second data set generated by the operation performed in the execution step by the second instance of the application;
responsive to determining that the first data set does not match the second data set, replacing, using a processor, in memory of the second data processing system, the second data set with the first data set;
responsive to at least one additional execution step being performed by the first instance of the application and the second instance of the application, determining whether a third data set generated by at least one additional operation performed in the at least one additional execution step by the first instance of the application matches a fourth data set generated by the at least one additional operation performed in the at least one additional execution step by the second instance of the application; and
responsive to determining that the third data set matches the fourth data set, outputting an indication that the operation that generated the fourth data set performed properly.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
responsive to determining that the first data set does not match the second data set, outputting an indication that the operation that generated the second data set is the candidate for inspection.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
outputting an indication of the second data set and an indication of a fifth data set input to the operation that generated the second data set.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first computing environment is hosted by a first operating system and the second computing environment is hosted by a second operating system that is different from the first operating system, wherein the first operating system and the second operating system are not different instance of the same operating system.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first computing environment is hosted by a first web browser and the second computing environment is hosted by a second web browser that is different from the first web browser, wherein the first web browser and the second web browser are not different instance of the same web browser.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first computing environment includes a first application programming interface used by the first instance of the application during execution that is different than a second application programming interface used by the second instance of the application during execution, wherein the first instance of the application does not use the second application programming interface during execution, and the first application programming interface and the second application programming interface are not different instances of the same application programming interface.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second computing environment includes service executed by the second data processing system during execution of the second instance of the application, and the first data processing system does not execute an instance of the service during execution of the first instance of the application.
