# US 9,436,583 B1 · Minimally disruptive debugging in a production environment

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

- Number: US 9,436,583 B1
- Document ID: US9436583B1
- Status: Granted
- Kind: B1
- Application number: 14/934,473
- Filed: 2015-11-06
- Granted: 2016-09-06
- Earliest claimed: 2015-11-06
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Tom C. L. Chen; Steven Cooper; Trong Truong
- Web page: https://patentgrep.com/patent/US9436583B1

## CPC

- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/14: Error detection or correction of the data by redundancy in operations (error detection or correction of the data by redundancy in hardware G06F11/16)
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1479: Generic software techniques for error detection or fault masking
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

For debugging an application in a production environment, a breakpoint is set in the application. Responsive to the setting, recording is begun of information about a processing of a request in the application. Reaching the breakpoint is detected in the application during the processing of the request. A replica of the application is created including the breakpoint, the application becoming a primary application and the replica becoming a secondary application in a production environment. In the secondary application, a debugging operation is performed during a processing of a copy of the request after the breakpoint in the secondary application.

## Claims

### Claim 1

A method comprising:
setting a breakpoint in an application;
beginning, responsive to the setting, recording information about a processing of a request in the application;
detecting that the breakpoint is reached in the application during the processing of the request;
creating a replica of the application, the replica including the breakpoint, the application becoming a primary application and the replica becoming a secondary application in a production environment; and
performing, in the secondary application, a debugging operation during a processing of a copy of the request after the breakpoint in the secondary application.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
reissuing the request to the secondary application as the copy of the request; and
processing the copy of the request in the secondary application up to the breakpoint using the recorded information.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
avoiding, during the processing of the copy of the request in the secondary application, a data interaction with a resource in the production environment, wherein a result of the data interaction is obtained from the recorded information.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
performing, during the processing of the request at the application, a data interaction from the application with a resource in the production environment; and
recording a result of the data interaction into the recorded information.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
continuing, after the detecting, the processing of the request in the primary application; and
returning a response to the request from the primary application.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
processing a second request in the application, wherein the processing of the second request does not reach the breakpoint before returning a response to the second request.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
storing the recorded information in a shared memory, wherein the shared memory is accessible to the primary application and the secondary application in the production environment.

### Claim 8 (depends on 7)

The method of claim 7, wherein the primary application and the secondary application are instances of the application, and the instances execute in one data processing system in the production environment, the shared memory being a component of the one data processing system.

### Claim 9

A method comprising:
setting a breakpoint in an application;
beginning, responsive to the setting, recording information about a processing of a request in the application;
detecting that the breakpoint is reached in the application during the processing of the request;
creating, a replica of the application, the replica including the breakpoint, the application becoming a secondary application and the replica becoming a primary application in a production environment; and
performing, in the secondary application, a debugging operation during a processing of a copy of the request after the breakpoint in the secondary application.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
reissuing the request to the primary application as the copy of the request; and
processing the copy of the request in the primary application up to the breakpoint using the recorded information.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
avoiding, during the processing of the copy of the request in the primary application, a data interaction with a resource in the production environment, wherein a result of the data interaction is obtained from the recorded information.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
performing, during the processing of the request at the application, a data interaction from the application with a resource in the production environment; and
recording a result of the data interaction into the recorded information.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
continuing, after the detecting, the processing of the request in the secondary application; and
returning a response to the request from the secondary application.

### Claim 14 (depends on 9)

The method of claim 9, further comprising:
processing a second request in the application, wherein the processing of the second request does not reach the breakpoint before returning a response to the second request.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
storing the recorded information in a shared memory, wherein the shared memory is accessible to the primary application and the secondary application in the production environment.

### Claim 16 (depends on 15)

The method of claim 15, wherein the primary application and the secondary application are instances of the application, and the instances execute in one data processing system in the production environment, the shared memory being a component of the one data processing system.

### Claim 17 (depends on 9)

The method of claim 9, wherein the method is embodied in a computer program product comprising one or more computer-readable storage devices and computer-readable program instructions which are stored on the one or more computer-readable storage devices and executed by one or more processors.

### Claim 18 (depends on 9)

The method of claim 9, wherein the method is embodied in a computer system comprising one or more processors, one or more computer-readable memories, one or more computer-readable storage devices and program instructions which are stored on the one or more computer-readable storage devices for execution by the one or more processors via the one or more memories and executed by the one or more processors.

### Claim 19

A computer program product comprising one or more computer-readable storage devices, and program instructions stored on at least one of the one or more storage devices, the stored program instructions comprising:
program instructions to set a breakpoint in an application;
program instructions to begin, responsive to the setting, recording information about a processing of a request in the application;
program instructions to detect that the breakpoint is reached in the application during the processing of the request;
program instructions to create a replica of the application, the replica including the breakpoint, the application becoming a primary application and the replica becoming a secondary application in the production environment; and
program instructions to perform, in the secondary application, a debugging operation during a processing of a copy of the request after the breakpoint in the secondary application.

### Claim 20 (depends on 19)

The computer program product of claim 19, the stored program instructions further comprising:
program instructions to reissue the request to the secondary application as the copy of the request; and
program instructions to process the copy of the request in the secondary application up to the breakpoint using the recorded information.
