IP Library › Granted Patent US 10,095,603
Granted Patent B2
US 10,095,603 · App. 15/401,124 · Granted Oct 9, 2018

Pre-fetching disassembly code for remote software debugging

Inventors: Xiao Ling Chen (Beijing, CN); Chuan He (Beijing, CN); Yan Huang (Beijing, CN); Jiang Yi Liu (Beijing, CN); Jian Xu (Milton, CA); Chong Zhou (Beijing, CN)
Assignee: International Business Machines Corporation
G06F11/3624G06F11/3664
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,095,603
App. No.
15/401,124
Granted
Oct 9, 2018
Kind
B2
Abstract

A method, computer program product and/or system for pre-fetching disassembly code. A breakpoint is set within an application under test (AUT). Setting of the breakpoint triggers pre-fetching of disassembly code associated with the breakpoint. The pre-fetched disassembly code is retained in a store local to a debug analysis system. When runtime processing of the AUT reaches the breakpoint, the debug analysis system retrieves the disassembly code from the local store.

Claims (57)

1. A method for pre-fetching disassembly code comprising:

receiving, from a remote computer system, a program code data set;

receiving user input including a first breakpoint address;

pre-fetching a first disassembly code segment, from the remote computer system running an application under test, based at least in part on the program code data set, and further based at least in part on the first breakpoint address, to produce a pre-fetched first disassembly code segment;

storing the pre-fetched first disassembly code segment in a local computer system running a debug analysis system;

receiving user input including a second breakpoint address;

pre-fetching a second disassembly code segment, from the remote computer system running the application under test, based at least in part on the program code data set, and further based at least in part on the second breakpoint address to produce a pre-fetched second disassembly code segment;

receiving information indicating that execution of the program code data set has reached the first breakpoint address;

in response to receiving information indicating that execution of the program code data set has reached the first breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system;

determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment;

in response to determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment, merging the pre-fetched second disassembly code segment with the pre-fetched first disassembly code segment to create a merged disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the merged disassembly code segment to the debug analysis system running on the local computer system.

2. The method of claim 1 further comprising:

storing the pre-fetched second disassembly code segment in the local computer system;

determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to (i) determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment, and (ii) receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system.

3. A computer program product comprising a computer readable storage medium having stored thereon instructions to perform:

receiving, from a remote computer system, a program code data set;

receiving user input including a first breakpoint address;

pre-fetching a first disassembly code segment, from the remote computer system running an application under test, based at least in part on the program code data set, and further based at least in part on the first breakpoint address, to produce a pre-fetched first disassembly code segment;

storing the pre-fetched first disassembly code segment in a local computer system running a debug analysis system;

receiving user input including a second breakpoint address;

pre-fetching a second disassembly code segment, from the remote computer system running the application under test, based at least in part on the program code data set, and further based at least in part on the second breakpoint address to produce a pre-fetched second disassembly code segment;

receiving information indicating that execution of the program code data set has reached the first breakpoint address;

in response to receiving information indicating that execution of the program code data set has reached the first breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system;

determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment;

in response to determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment, merging the pre-fetched second disassembly code segment with the pre-fetched first disassembly code segment to create a merged disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the merged disassembly code segment to the debug analysis system running on the local computer system.

4. The computer program product of claim 3 , the program instructions further comprising instructions to perform:

storing the pre-fetched second disassembly code segment in the local computer system;

determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to (i) determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment, and (ii) receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system.

5. A computer system comprising:

one or more computer processors;

one or more computer-readable storage media;

program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising instructions to perform:

receiving, from a remote computer system, a program code data set;

receiving user input including a first breakpoint address;

pre-fetching a first disassembly code segment, from the remote computer system running an application under test, based at least in part on the program code data set, and further based at least in part on the first breakpoint address, to produce a pre-fetched first disassembly code segment;

storing the pre-fetched first disassembly code segment in a local computer system running a debug analysis system;

receiving user input including a second breakpoint address;

pre-fetching a second disassembly code segment, from the remote computer system running the application under test, based at least in part on the program code data set, and further based at least in part on the second breakpoint address to produce a pre-fetched second disassembly code segment;

receiving information indicating that execution of the program code data set has reached the first breakpoint address;

in response to receiving information indicating that execution of the program code data set has reached the first breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system;

determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment;

in response to determining that the pre-fetched second disassembly code segment overlaps the pre-fetched first disassembly code segment, merging the pre-fetched second disassembly code segment with the pre-fetched first disassembly code segment to create a merged disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the merged disassembly code segment to the debug analysis system running on the local computer system.

6. The computer system of claim 5 , the program instructions further comprising instructions to perform:

storing the pre-fetched second disassembly code segment in the local computer system;

determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment;

receiving information indicating that execution of the program code data set has reached the second breakpoint address; and

in response to (i) determining that the pre-fetched second disassembly code segment is a subset of the pre-fetched first disassembly code segment, and (ii) receiving information indicating that execution of the program code data set has reached the second breakpoint address, sending the pre-fetched first disassembly code segment to the debug analysis system running on the local computer system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2017
From: CHEN, XIAO LING; HE, CHUAN; HUANG, YAN; LIU, JIANG YI; XU, JIAN; ZHOU, CHONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040886/0903 →
Continuity (1)
Related Publication 20180196733A1 · Jul 12, 2018